2019-10-07 20:56:30 +00:00
var __BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now(),__DEV__=false,process=this.process||{};process.env=process.env||{};process.env.NODE_ENV=process.env.NODE_ENV||"production";
!(function(r){"use strict";r.__r=o,r.__d=function(r,i,n){if(null!=e[i])return;var o={dependencyMap:n,factory:r,hasError:!1,importedAll:t,importedDefault:t,isInitialized:!1,publicModule:{exports:{}}};e[i]=o},r.__c=n,r.__registerSegment=function(r,e){s[r]=e};var e=n(),t={},i={}.hasOwnProperty;function n(){return e=Object.create(null)}function o(r){var t=r,i=e[t];return i&&i.isInitialized?i.publicModule.exports:d(t,i)}function l(r){var i=r;if(e[i]&&e[i].importedDefault!==t)return e[i].importedDefault;var n=o(i),l=n&&n.__esModule?n.default:n;return e[i].importedDefault=l}function u(r){var n=r;if(e[n]&&e[n].importedAll!==t)return e[n].importedAll;var l,u=o(n);if(u&&u.__esModule)l=u;else{if(l={},u)for(var a in u)i.call(u,a)&&(l[a]=u[a]);l.default=u}return e[n].importedAll=l}o.importDefault=l,o.importAll=u;var a=!1;function d(e,t){if(!a&&r.ErrorUtils){var i;a=!0;try{i=v(e,t)}catch(e){r.ErrorUtils.reportFatalError(e)}return a=!1,i}return v(e,t)}var c=16,f=65535;function p(r){return{segmentId:r>>>c,localId:r&f}}o.unpackModuleId=p,o.packModuleId=function(r){return(r.segmentId<<c)+r.localId};var s=[];function v(t,i){if(!i&&s.length>0){var n=p(t),a=n.segmentId,d=n.localId,c=s[a];null!=c&&(c(d),i=e[t])}var f=r.nativeRequire;if(!i&&f){var v=p(t),h=v.segmentId;f(v.localId,h),i=e[t]}if(!i)throw Error('Requiring unknown module "'+t+'".');if(i.hasError)throw m(t,i.error);i.isInitialized=!0;var I=i,g=I.factory,y=I.dependencyMap;try{var _=i.publicModule;return _.id=t,g(r,o,l,u,_,_.exports,y),i.factory=void 0,i.dependencyMap=void 0,_.exports}catch(r){throw i.hasError=!0,i.error=r,i.isInitialized=!1,i.publicModule.exports=void 0,r}}function m(r,e){return Error('Requiring module "'+r+'", which threw an exception: '+e)}})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this);
2020-05-25 20:54:27 +00:00
!(function(n){var e=(function(){function n(n,e){return n}function e(n){var e={};return n.forEach(function(n,r){e[n]=!0}),e}function r(n,r,u){if(n.formatValueCalls++,n.formatValueCalls>200)return"[TOO BIG formatValueCalls "+n.formatValueCalls+" exceeded limit of 200]";var f=t(n,r);if(f)return f;var c=Object.keys(r),s=e(c);if(d(r)&&(c.indexOf('message')>=0||c.indexOf('description')>=0))return o(r);if(0===c.length){if(v(r)){var p=r.name?': '+r.name:'';return n.stylize('[Function'+p+']','special')}if(g(r))return n.stylize(RegExp.prototype.toString.call(r),'regexp');if(y(r))return n.stylize(Date.prototype.toString.call(r),'date');if(d(r))return o(r)}var h,b,m='',j=!1,O=['{','}'];(h=r,Array.isArray(h)&&(j=!0,O=['[',']']),v(r))&&(m=' [Function'+(r.name?': '+r.name:'')+']');return g(r)&&(m=' '+RegExp.prototype.toString.call(r)),y(r)&&(m=' '+Date.prototype.toUTCString.call(r)),d(r)&&(m=' '+o(r)),0!==c.length||j&&0!=r.length?u<0?g(r)?n.stylize(RegExp.prototype.toString.call(r),'regexp'):n.stylize('[Object]','special'):(n.seen.push(r),b=j?i(n,r,u,s,c):c.map(function(e){return a(n,r,u,s,e,j)}),n.seen.pop(),l(b,m,O)):O[0]+m+O[1]}function t(n,e){if(s(e))return n.stylize('undefined','undefined');if('string'==typeof e){var r="'"+JSON.stringify(e).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(r,'string')}return c(e)?n.stylize(''+e,'number'):u(e)?n.stylize(''+e,'boolean'):f(e)?n.stylize('null','null'):void 0}function o(n){return'['+Error.prototype.toString.call(n)+']'}function i(n,e,r,t,o){for(var i=[],l=0,u=e.length;l<u;++l)b(e,String(l))?i.push(a(n,e,r,t,String(l),!0)):i.push('');return o.forEach(function(o){o.match(/^\d+$/)||i.push(a(n,e,r,t,o,!0))}),i}function a(n,e,t,o,i,a){var l,u,c;if((c=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?u=c.set?n.stylize('[Getter/Setter]','special'):n.stylize('[Getter]','special'):c.set&&(u=n.stylize('[Setter]','special')),b(o,i)||(l='['+i+']'),u||(n.seen.indexOf(c.value)<0?(u=f(t)?r(n,c.value,null):r(n,c.value,t-1)).indexOf('\n')>-1&&(u=a?u.split('\n').map(function(n){return' '+n}).join('\n').substr(2):'\n'+u.split('\n').map(function(n){return' '+n}).join('\n')):u=n.stylize('[Circular]','special')),s(l)){if(a&&i.match(/^\d+$/))return u;(l=JSON.stringify(''+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=n.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=n.stylize(l,'string'))}return l+': '+u}function l(n,e,r){return n.reduce(function(n,e){return 0,e.indexOf('\n')>=0&&0,n+e.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?r[0]+(''===e?'':e+'\n ')+' '+n.join(',\n ')+' '+r[1]:r[0]+e+' '+n.join(', ')+' '+r[1]}function u(n){return'boolean'==typeof n}function f(n){return null===n}function c(n){return'number'==typeof n}function s(n){return void 0===n}function g(n){return p(n)&&'[object RegExp]'===h(n)}function p(n){return'object'==typeof n&&null!==n}function y(n){return p(n)&&'[object Date]'===h(n)}function d(n){return p(n)&&('[object Error]'===h(n)||n instanceof Error)}function v(n){return'function'==typeof n}function h(n){return Object.prototype.toString.call(n)}function b(n,e){return Object.prototype.hasOwnProperty.call(n,e)}return function(e,t){return r({seen:[],formatValueCalls:0,stylize:n},e,t.depth)}})(),r='(index)',t={trace:0,info:1,warn:2,error:3},o=[];o[t.trace]='debug',o[t.info]='log',o[t.warn]='warning',o[t.error]='error';var i=1;function a(r){return function(){var a;a=1===arguments.length&&'string'==typeof arguments[0]?arguments[0]:Array.prototype.map.call(arguments,function(n){return e(n,{depth:10})}).join(', ');var l=r;'Warning: '===a.slice(0,9)&&l>=t.error&&(l=t.warn),n.__inspectorLog&&n.__inspectorLog(o[l],a,[].slice.call(arguments),i),s.length&&(a=g('',a)),n.nativeLoggingHook(a,l)}}function l(n,e){return Array.apply(null,Array(e)).map(function(){return n})}var u="\u2502",f="\u2510",c="\u2518",s=[];function g(n,e){return s.join('')+n+' '+(e||'')}if(n.nativeLoggingHook){n.console;n.console={error:a(t.error),info:a(t.info),log:a(t.info),warn:a(t.warn),trace:a(t.trace),debug:a(t.trace)
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
!(function(n){var r=0,t=function(n,r){throw n},l={setGlobalHandler:function(n){t=n},getGlobalHandler:function(){return t},reportError:function(n){t&&t(n,!1)},reportFatalError:function(n){t&&t(n,!0)},applyWithGuard:function(n,t,u,o,e){try{return r++,n.apply(t,u)}catch(n){l.reportError(n)}finally{r--}return null},applyWithGuardIfNeeded:function(n,r,t){return l.inGuard()?n.apply(r,t):(l.applyWithGuard(n,r,t),null)},inGuard:function(){return!!r},guard:function(n,r,t){var u,o;if('function'!=typeof n)return console.warn('A function must be passed to ErrorUtils.guard, got ',n),null;var e=null!=(u=null!=(o=r)?o:n.name)?u:'<generated guard>';return function(){for(var r,u=arguments.length,o=new Array(u),a=0;a<u;a++)o[a]=arguments[a];return l.applyWithGuard(n,null!=(r=t)?r:this,o,null,e)}}};n.ErrorUtils=l})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this);
2019-10-07 20:56:30 +00:00
'undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window&&window,(function(){'use strict';var e=Object.prototype.hasOwnProperty;'function'!=typeof Object.entries&&(Object.entries=function(n){if(null==n)throw new TypeError('Object.entries called on non-object');var o=[];for(var t in n)e.call(n,t)&&o.push([t,n[t]]);return o}),'function'!=typeof Object.values&&(Object.values=function(n){if(null==n)throw new TypeError('Object.values called on non-object');var o=[];for(var t in n)e.call(n,t)&&o.push(n[t]);return o})})();
__d(function(g,r,i,a,m,e,d){r(d[0])},0,[1]);
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=t(r(d[2])),p=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6]));r(d[7]);var f=n(r(d[8])),s=r(d[9]),A=r(d[10]),y=r(d[11]),v=r(d[12]),C=(function(n){function t(){return(0,o.default)(this,t),(0,u.default)(this,(0,l.default)(t).apply(this,arguments))}return(0,c.default)(t,n),(0,p.default)(t,[{key:"render",value:function(){return f.default.createElement(A.App,this.props)}}]),t})(f.PureComponent);(0,y._initLogging)();var h=console.log,R=s.AppRegistry.runApplication;s.AppRegistry.runApplication=function(){console.log=function(){},R.apply(void 0,arguments),console.log=h},s.AppRegistry.registerComponent('App',function(){return C}),s.AppRegistry.registerComponent('IncomingCallApp',function(){return v.IncomingCallApp})},1,[2,3,4,5,6,9,10,12,59,15,436,495,1766]);
2019-10-07 20:56:30 +00:00
__d(function(g,r,i,a,m,e,d){m.exports=function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var c=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,n):{};c.get||c.set?Object.defineProperty(o,n,c):o[n]=t[n]}return o.default=t,o}},2,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){return n&&n.__esModule?n:{default:n}}},3,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},4,[]);
__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o<t.length;o++){var u=t[o];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(n,u.key,u)}}m.exports=function(t,o,u){return o&&n(t.prototype,o),u&&n(t,u),t}},5,[]);
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]);m.exports=function(o,c){return!c||"object"!==n(c)&&"function"!=typeof c?t(o):c}},6,[7,8]);
__d(function(g,r,i,a,m,e,d){function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof o})(t)}function t(n){return"function"==typeof Symbol&&"symbol"===o("function"==typeof Symbol?Symbol.iterator:"@@iterator")?m.exports=t=function(t){return o(t)}:m.exports=t=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":o(t)},t(n)}m.exports=t},7,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}},8,[]);
__d(function(g,r,i,a,m,e,d){function t(o){return m.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},t(o)}m.exports=t},9,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(o,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");o.prototype=Object.create(n&&n.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),n&&t(o,n)}},10,[11]);
__d(function(g,r,i,a,m,e,d){function t(o,n){return m.exports=t=Object.setPrototypeOf||function(t,o){return t.__proto__=o,t},t(o,n)}m.exports=t},11,[]);
Merge beta into master (#2635)
* [IMPROVEMENT] Keep screen awake while recording/playing some audio (#2089)
* [IMPROVEMENT] Keep screen awake while recording/playing some audio
* [FIX] Add expo-keep-awake mock
* [FIX] UIKit crashing when UIKitModal receive update event (#2088)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Close announcement banner (#2064)
* [NEW] Created new field in subscription table
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [NEW] New field added to obeserver in room view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [NEW] Added icon and new design to banner
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [NEW] Close banner function works
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] closed banner status now update correctly
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* improve banner style
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Update all dependencies (#2008)
* Android RN 62
* First steps iOS
* Second step iOS
* iOS compiling
* "New" build system
* Finish iOS
* Flipper
* Update to RN 0.62.1
* expo libs
* Hermes working
* Fix lint
* Fix android build
* Patches
* Dev patches
* Patch WatermelonDB: https://github.com/Nozbe/WatermelonDB/pull/660
* Fix jitsi
* Update several minors
* Update dev minors and lint
* react-native-keyboard-input
* Few updates
* device info
* react-native-fast-image
* Navigation bar color
* react-native-picker-select
* webview
* reactotron-react-native
* Watermelondb
* RN 0.62.2
* Few updates
* Fix selection
* update gems
* remove lib
* finishing
* tests
* Use node 10
* Re-enable app bundle
* iOS build
* Update jitsi ios
* [NEW] Passcode and biometric unlock (#2059)
* Update expo libs
* Configure expo-local-authentication
* ScreenLockedView
* Authenticate server change
* Auth on app resume
* localAuthentication util
* Add servers.lastLocalAuthenticatedSession column
* Save last session date on background
* Use our own version of app state redux
* Fix libs
* Remove inactive
* ScreenLockConfigView
* Apply on saved data
* Auto lock option label
* Starting passcode
* Basic passcode flow working
* Change passcode
* Check if biometry is enrolled
* Use fork
* Migration
* Patch expo-local-authentication
* Use async storage
* Styling
* Timer
* Refactor
* Lock orientation portrait when not on tablet
* share extension
* Deep linking
* Share extension
* Refactoring passcode
* use state
* Stash
* Refactor
* Change passcode
* Animate dots on error
* Matching passcodes
* Shake
* Remove lib
* Delete button
* Fade animation on modal
* Refactoring
* ItemInfo
* I18n
* I18n
* Remove unnecessary prop
* Save biometry column
* Raise time to lock to 30 seconds
* Vibrate on wrong confirmation passcode
* Reset attempts and save last authentication on local passcode confirmation
* Remove inline style
* Save last auth
* Fix header blink
* Change function name
* Fix android modal
* Fix vibration permission
* PasscodeEnter calls biometry
* Passcode on the state
* Biometry button on PasscodeEnter
* Show whole passcode
* Secure passcode
* Save passcode with promise to prevent empty passcodes and immediately lock
* Patch expo-local-authentication
* I18n
* Fix biometry being called every time
* Blur screen on app inactive
* Revert "Blur screen on app inactive"
This reverts commit a4ce812934adcf6cf87eb1a92aec9283e2f26753.
* Remove immediately because of how Activities work on Android
* Pods
* New layout
* stash
* Layout refactored
* Fix icons
* Force set passcode from server
* Lint
* Improve permission message
* Forced passcode subtitle
* Disable based on admin's choice
* Require local authentication on login success
* Refactor
* Update tests
* Update react-native-device-info to fix notch
* Lint
* Fix modal
* Fix icons
* Fix min auto lock time
* Review
* keep enabled on mobile
* fix forced by admin when enable unlock with passcode
* use DEFAULT_AUTO_LOCK when manual enable screenLock
* fix check has passcode
* request biometry on first password
* reset auto time lock when disabled on server
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Messages View (#2090)
* [FIX] Messages View
* [FIX] Opening PDF from Files View
* [FIX] Audio
* [FIX] SearchMessagesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Big names overflow (#2072)
* [FIX] Big names overflow
* [FIX] Message time
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
* [FIX] Some alignments
* fix user item overflow
* some adjustments
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Avatar of message as an emoji (#2038)
* fixed-issue
* removed-hardcoded-emoji
* Merge develop
* replaced markdown with emoji componenent
* made-changes
* use avatar onPress
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Livechat (#2004)
* [WIP][NEW] Livechat info/actions
* [IMPROVEMENT] RoomActionsView
* [NEW] Visitor Navigation
* [NEW] Get Department REST
* [FIX] Borders
* [IMPROVEMENT] Refactor RoomInfo View
* [FIX] Error while navigate from mention -> roomInfo
* [NEW] Livechat Fields
* [NEW] Close Livechat
* [WIP] Forward livechat
* [NEW] Return inquiry
* [WIP] Comment when close livechat
* [WIP] Improve roomInfo
* [IMPROVEMENT] Forward room
* [FIX] Department picker
* [FIX] Picker without results
* [FIX] Superfluous argument
* [FIX] Check permissions on RoomActionsView
* [FIX] Livechat permissions
* [WIP] Show edit to livechat
* [I18N] Add pt-br translations
* [WIP] Livechat Info
* [IMPROVEMENT] Livechat info
* [WIP] Livechat Edit
* [WIP] Livechat edit
* [WIP] Livechat Edit
* [WIP] Livechat edit scroll
* [FIX] Edit customFields
* [FIX] Clean livechat customField
* [FIX] Visitor Navigation
* [NEW] Next input logic LivechatEdit
* [FIX] Add livechat data to subscription
* [FIX] Revert change
* [NEW] Livechat user Status
* [WIP] Livechat tags
* [NEW] Edit livechat tags
* [FIX] Prevent some crashes
* [FIX] Forward
* [FIX] Return Livechat error
* [FIX] Prevent livechat info crash
* [IMPROVEMENT] Use input style on forward chat
* OnboardingSeparator -> OrSeparator
* [FIX] Go to next input
* [NEW] Added some icons
* [NEW] Livechat close
* [NEW] Forward Room Action
* [FIX] Livechat edit style
* [FIX] Change status logic
* [CHORE] Remove unnecessary logic
* [CHORE] Remove unnecessary code
* [CHORE] Remove unecessary case
* [FIX] Superfluous argument
* [IMPROVEMENT] Submit livechat edit
* [CHORE] Remove textInput type
* [FIX] Livechat edit
* [FIX] Livechat Edit
* [FIX] Use same effect
* [IMPROVEMENT] Tags input
* [FIX] Add empty tag
* Fix minor issues
* Fix typo
* insert livechat room data to our room object
* review
* add method calls server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Delete Subs (#2091)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
2020-11-12 12:29:05 +00:00
__d(function(g,r,i,a,m,e,d){r(d[0]),r(d[1])},12,[13,14]);
__d(function(g,r,i,a,m,e,d){var _;void 0===(_=g||window||this).__filename&&(_.__filename='__filename')},13,[]);
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=t(r(d[2]));r(d[3]);var l=t(r(d[4]));function s(t,n){return t===n?t:(o=Object.getPrototypeOf(t))&&(o=s(n,o))||(o=Object.getPrototypeOf(n))&&(o=s(t,o))?o:void 0;var o}function f(t,n){var o=null;return t&&u(t,function(t){return 1===t.nodeType&&t.nodeName===n&&(o=t,!0)}),o}function u(t,n){if(n(t))return!0;if(t=t.firstChild)do{if(u(t,n))return!0}while(t=t.nextSibling);return!1}!(function(t){var u=r(d[5]).DOMParser;if(t.DOMParser=u,void 0===t.addEventListener&&(t.addEventListener=function(){}),void 0===t.removeEventListener&&(t.removeEventListener=function(){}),void 0===t.document){var c=(new u).parseFromString('<html><head></head><body></body></html>','text/xml');void 0===c.addEventListener&&(c.addEventListener=function(){}),void 0===c.cookie&&(c.cookie=''),void 0===c.implementation.createHTMLDocument&&(c.implementation.createHTMLDocument=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=(new u).parseFromString("<html>\n <head><title>"+t+"</title></head>\n <body></body>\n </html>",'text/xml');return Object.defineProperty(n,'body',{get:function(){return n.getElementsByTagName('body')[0]}}),n});var v=Object.getPrototypeOf(c.documentElement);v&&(void 0===v.querySelector&&(v.querySelector=function(t){return f(this,t)}),void 0===v.remove&&(v.remove=function(){null!==this.parentNode&&this.parentNode.removeChild(this)}),v.hasOwnProperty('innerHTML')||Object.defineProperty(v,'innerHTML',{get:function(){return this.childNodes.toString()},set:function(t){this.textContent='';for(var n,o=(new u).parseFromString("<div>"+t+"</div>",'text/xml').documentElement;n=o.firstChild;)this.appendChild(n)}}),v.hasOwnProperty('children')||Object.defineProperty(v,'children',{get:function(){for(var t=this.childNodes,n=[],o=0,l=t[o];l;)1===l.nodeType&&n.push(l),l=t[o+=1];return n}}));var h=s(Object.getPrototypeOf(c),v);if(h&&h!==Object.getPrototypeOf({})){var p=t.console;if(p){var y=r(d[6]).levels;Object.keys(y).forEach(function(t){var n=y[t],o=p[n];'function'==typeof o&&(p[n]=function(){for(var t=arguments.length,l=new Array(t),s=0;s<t;s++)l[s]=arguments[s];if(p.disableYellowBox&&'error'===n)p.warn.apply(p,l);else{for(var f=l.length,u=0;u<f;++u){var c=l[u];if(c&&'string'!=typeof c&&h.isPrototypeOf(c)){var v=c.toString;v&&(c=v.call(c))}l[u]=c}o.apply(this,l)}})})}}t.document=c}void 0===t.location&&(t.location={href:'',search:''});var O=t.navigator;if(O){var b=O.userAgent||'',P=r(d[7]),w=P.name,x=P.version,L=w||'react-native';x&&(L+="/"+x),-1===b.indexOf(L)&&(b=b?L+" "+b:L);var S="("+n.Platform.OS+" "+n.Platform.Version+")";-1===b.indexOf(S)&&(b=b?b+" "+S:S),O.userAgent=b}if(r(d[8]),r(d[9]),t.callstats=r(d[10]),t.XMLHttpRequest){var T=t.XMLHttpRequest.prototype;T&&!T.hasOwnProperty('responseXML')&&Object.defineProperty(T,'responseXML',{get:function(){var t=this.responseText;return t&&(new u).parseFromString(t,'text/xml')}})}t.clearTimeout=o.default.clearTimeout.bind(o.default),t.clearInterval=o.default.clearInterval.bind(o.default),t.setInterval=o.default.setInterval.bind(o.default),t.setTimeout=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return o.default.setTimeout(t,n)},void 0===t.localStorage&&(t.localStorage=new l.default('@jitsi-meet/')),void 0===t.sessionStorage&&(t.sessionStorage=new l.default)})(g||window||this)},14,[3,15,383,384,385,389,392,395,396,432,435]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);var t=r(d[1]);m.exports={get AccessibilityInfo(){return r(d[2])},get ActivityIndicator(){return r(d[3])},get ART(){return t('art-moved',"React Native ART has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/art' instead of 'react-native'. See https://github.com/react-native-community/art"),r(d[4])},get Button(){return r(d[5])},get CheckBox(){return t('checkBox-moved',"CheckBox has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/checkbox' instead of 'react-native'. See https://github.com/react-native-community/react-native-checkbox"),r(d[6])},get DatePickerIOS(){return t('DatePickerIOS-merged',"DatePickerIOS has been merged with DatePickerAndroid and will be removed in a future release. It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. See https://github.com/react-native-community/react-native-datetimepicker"),r(d[7])},get DrawerLayoutAndroid(){return r(d[8])},get FlatList(){return r(d[9])},get Image(){return r(d[10])},get ImageBackground(){return r(d[11])},get InputAccessoryView(){return r(d[12])},get KeyboardAvoidingView(){return r(d[13])},get MaskedViewIOS(){return t('maskedviewios-moved',"MaskedViewIOS has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/masked-view' instead of 'react-native'. See https://github.com/react-native-community/react-native-masked-view"),r(d[14])},get Modal(){return r(d[15])},get Picker(){return r(d[16])},get PickerIOS(){return r(d[17])},get ProgressBarAndroid(){return r(d[18])},get ProgressViewIOS(){return r(d[19])},get SafeAreaView(){return r(d[20])},get ScrollView(){return r(d[21])},get SectionList(){return r(d[22])},get SegmentedControlIOS(){return r(d[23])},get Slider(){return t('slider-moved',"Slider has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/slider' instead of 'react-native'. See https://github.com/react-native-community/react-native-slider"),r(d[24])},get Switch(){return r(d[25])},get RefreshControl(){return r(d[26])},get StatusBar(){return r(d[27])},get Text(){return r(d[28])},get TextInput(){return r(d[29])},get Touchable(){return r(d[30])},get TouchableHighlight(){return r(d[31])},get TouchableNativeFeedback(){return r(d[32])},get TouchableOpacity(){return r(d[33])},get TouchableWithoutFeedback(){return r(d[34])},get View(){return r(d[35])},get VirtualizedList(){return r(d[36])},get VirtualizedSectionList(){return r(d[37])},get ActionSheetIOS(){return r(d[38])},get Alert(){return r(d[39])},get Animated(){return r(d[40])},get AppRegistry(){return r(d[41])},get AppState(){return r(d[42])},get AsyncStorage(){return t('async-storage-moved',"AsyncStorage has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/async-storage' instead of 'react-native'. See https://github.com/react-native-community/react-native-async-storage"),r(d[43])},get BackHandler(){return r(d[44])},get Clipboard(){return r(d[45])},get DatePickerAndroid(){return t('DatePickerAndroid-merged',"DatePickerAndroid has been merged with DatePickerIOS and will be removed in a future release. It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. See https://github.com/react-native-community/react-native-datetimepicker"),r(d[46])},get DeviceInfo(){return r(d[47])},get Dimensions(){return r(d[48])},get Easing(){return r(d[49])},get findNodeHandle(){return r(d[50]).findNodeHandle},get I18nManager(){return r(d[51])},get ImagePickerIOS(){return t('imagePickerIOS-moved',"ImagePickerIOS has been extracted from react-native core and will be removed in a future release. Please upgrade to
Merge beta into master (#2635)
* [IMPROVEMENT] Keep screen awake while recording/playing some audio (#2089)
* [IMPROVEMENT] Keep screen awake while recording/playing some audio
* [FIX] Add expo-keep-awake mock
* [FIX] UIKit crashing when UIKitModal receive update event (#2088)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Close announcement banner (#2064)
* [NEW] Created new field in subscription table
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [NEW] New field added to obeserver in room view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [NEW] Added icon and new design to banner
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [NEW] Close banner function works
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] closed banner status now update correctly
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* improve banner style
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Update all dependencies (#2008)
* Android RN 62
* First steps iOS
* Second step iOS
* iOS compiling
* "New" build system
* Finish iOS
* Flipper
* Update to RN 0.62.1
* expo libs
* Hermes working
* Fix lint
* Fix android build
* Patches
* Dev patches
* Patch WatermelonDB: https://github.com/Nozbe/WatermelonDB/pull/660
* Fix jitsi
* Update several minors
* Update dev minors and lint
* react-native-keyboard-input
* Few updates
* device info
* react-native-fast-image
* Navigation bar color
* react-native-picker-select
* webview
* reactotron-react-native
* Watermelondb
* RN 0.62.2
* Few updates
* Fix selection
* update gems
* remove lib
* finishing
* tests
* Use node 10
* Re-enable app bundle
* iOS build
* Update jitsi ios
* [NEW] Passcode and biometric unlock (#2059)
* Update expo libs
* Configure expo-local-authentication
* ScreenLockedView
* Authenticate server change
* Auth on app resume
* localAuthentication util
* Add servers.lastLocalAuthenticatedSession column
* Save last session date on background
* Use our own version of app state redux
* Fix libs
* Remove inactive
* ScreenLockConfigView
* Apply on saved data
* Auto lock option label
* Starting passcode
* Basic passcode flow working
* Change passcode
* Check if biometry is enrolled
* Use fork
* Migration
* Patch expo-local-authentication
* Use async storage
* Styling
* Timer
* Refactor
* Lock orientation portrait when not on tablet
* share extension
* Deep linking
* Share extension
* Refactoring passcode
* use state
* Stash
* Refactor
* Change passcode
* Animate dots on error
* Matching passcodes
* Shake
* Remove lib
* Delete button
* Fade animation on modal
* Refactoring
* ItemInfo
* I18n
* I18n
* Remove unnecessary prop
* Save biometry column
* Raise time to lock to 30 seconds
* Vibrate on wrong confirmation passcode
* Reset attempts and save last authentication on local passcode confirmation
* Remove inline style
* Save last auth
* Fix header blink
* Change function name
* Fix android modal
* Fix vibration permission
* PasscodeEnter calls biometry
* Passcode on the state
* Biometry button on PasscodeEnter
* Show whole passcode
* Secure passcode
* Save passcode with promise to prevent empty passcodes and immediately lock
* Patch expo-local-authentication
* I18n
* Fix biometry being called every time
* Blur screen on app inactive
* Revert "Blur screen on app inactive"
This reverts commit a4ce812934adcf6cf87eb1a92aec9283e2f26753.
* Remove immediately because of how Activities work on Android
* Pods
* New layout
* stash
* Layout refactored
* Fix icons
* Force set passcode from server
* Lint
* Improve permission message
* Forced passcode subtitle
* Disable based on admin's choice
* Require local authentication on login success
* Refactor
* Update tests
* Update react-native-device-info to fix notch
* Lint
* Fix modal
* Fix icons
* Fix min auto lock time
* Review
* keep enabled on mobile
* fix forced by admin when enable unlock with passcode
* use DEFAULT_AUTO_LOCK when manual enable screenLock
* fix check has passcode
* request biometry on first password
* reset auto time lock when disabled on server
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Messages View (#2090)
* [FIX] Messages View
* [FIX] Opening PDF from Files View
* [FIX] Audio
* [FIX] SearchMessagesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Big names overflow (#2072)
* [FIX] Big names overflow
* [FIX] Message time
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
* [FIX] Some alignments
* fix user item overflow
* some adjustments
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Avatar of message as an emoji (#2038)
* fixed-issue
* removed-hardcoded-emoji
* Merge develop
* replaced markdown with emoji componenent
* made-changes
* use avatar onPress
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Livechat (#2004)
* [WIP][NEW] Livechat info/actions
* [IMPROVEMENT] RoomActionsView
* [NEW] Visitor Navigation
* [NEW] Get Department REST
* [FIX] Borders
* [IMPROVEMENT] Refactor RoomInfo View
* [FIX] Error while navigate from mention -> roomInfo
* [NEW] Livechat Fields
* [NEW] Close Livechat
* [WIP] Forward livechat
* [NEW] Return inquiry
* [WIP] Comment when close livechat
* [WIP] Improve roomInfo
* [IMPROVEMENT] Forward room
* [FIX] Department picker
* [FIX] Picker without results
* [FIX] Superfluous argument
* [FIX] Check permissions on RoomActionsView
* [FIX] Livechat permissions
* [WIP] Show edit to livechat
* [I18N] Add pt-br translations
* [WIP] Livechat Info
* [IMPROVEMENT] Livechat info
* [WIP] Livechat Edit
* [WIP] Livechat edit
* [WIP] Livechat Edit
* [WIP] Livechat edit scroll
* [FIX] Edit customFields
* [FIX] Clean livechat customField
* [FIX] Visitor Navigation
* [NEW] Next input logic LivechatEdit
* [FIX] Add livechat data to subscription
* [FIX] Revert change
* [NEW] Livechat user Status
* [WIP] Livechat tags
* [NEW] Edit livechat tags
* [FIX] Prevent some crashes
* [FIX] Forward
* [FIX] Return Livechat error
* [FIX] Prevent livechat info crash
* [IMPROVEMENT] Use input style on forward chat
* OnboardingSeparator -> OrSeparator
* [FIX] Go to next input
* [NEW] Added some icons
* [NEW] Livechat close
* [NEW] Forward Room Action
* [FIX] Livechat edit style
* [FIX] Change status logic
* [CHORE] Remove unnecessary logic
* [CHORE] Remove unnecessary code
* [CHORE] Remove unecessary case
* [FIX] Superfluous argument
* [IMPROVEMENT] Submit livechat edit
* [CHORE] Remove textInput type
* [FIX] Livechat edit
* [FIX] Livechat Edit
* [FIX] Use same effect
* [IMPROVEMENT] Tags input
* [FIX] Add empty tag
* Fix minor issues
* Fix typo
* insert livechat room data to our room object
* review
* add method calls server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Delete Subs (#2091)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
2020-11-12 12:29:05 +00:00
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(n,o,t,f,s,u,c,l){if(!n){var v;if(void 0===o)v=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[t,f,s,u,c,l],h=0;(v=new Error(o.replace(/%s/g,function(){return p[h++]}))).name='Invariant Violation'}throw v.framesToPop=1,v}}},16,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n={};m.exports=function(c,o){n[c]||(t(!1,o),n[c]=!0)}},17,[18]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t},18,[19]);
__d(function(g,r,i,a,m,e,d){"use strict";function t(t){return function(){return t}}var n=function(){};n.thatReturns=t,n.thatReturnsFalse=t(!1),n.thatReturnsTrue=t(!0),n.thatReturnsNull=t(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(t){return t},m.exports=n},19,[]);
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0])(r(d[1])),t=r(d[2]),u=r(d[3]),c={announcementFinished:'announcementFinished',boldTextChanged:'boldTextChanged',grayscaleChanged:'grayscaleChanged',invertColorsChanged:'invertColorsChanged',reduceMotionChanged:'reduceMotionChanged',reduceTransparencyChanged:'reduceTransparencyChanged',screenReaderChanged:'screenReaderChanged'},o=new Map,s={isBoldTextEnabled:function(){return new t(function(t,u){n.default?n.default.getCurrentBoldTextState(t,u):u(u)})},isGrayscaleEnabled:function(){return new t(function(t,u){n.default?n.default.getCurrentGrayscaleState(t,u):u(u)})},isInvertColorsEnabled:function(){return new t(function(t,u){n.default?n.default.getCurrentInvertColorsState(t,u):u(u)})},isReduceMotionEnabled:function(){return new t(function(t,u){n.default?n.default.getCurrentReduceMotionState(t,u):u(u)})},isReduceTransparencyEnabled:function(){return new t(function(t,u){n.default?n.default.getCurrentReduceTransparencyState(t,u):u(u)})},isScreenReaderEnabled:function(){return new t(function(t,u){n.default?n.default.getCurrentVoiceOverState(t,u):u(u)})},get fetch(){return this.isScreenReaderEnabled},addEventListener:function(n,t){var l;return'change'===n?l=u.addListener(c.screenReaderChanged,t):c[n]&&(l=u.addListener(n,t)),o.set(t,l),{remove:s.removeEventListener.bind(null,n,t)}},setAccessibilityFocus:function(t){n.default&&n.default.setAccessibilityFocus(t)},announceForAccessibility:function(t){n.default&&n.default.announceForAccessibility(t)},removeEventListener:function(n,t){var u=o.get(t);u&&(u.remove(),o.delete(t))}};m.exports=s},20,[3,21,40,45]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('AccessibilityManager');e.default=u},21,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.get=o,e.getEnforcing=function(n){var u=o(n);return(0,t.default)(null!=u,"TurboModuleRegistry.getEnforcing(...): '"+n+"' could not be found. Verify that a module by this name is registered in the native binary."),u};var t=n(r(d[1])),u=r(d[2]),l=g.__turboModuleProxy;function o(n){if(!g.RN$Bridgeless){var t=u[n];if(null!=t)return t}return null!=l?l(n):null}},22,[3,16,23]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),u=r(d[3]);function l(o,l){if(!o)return null;var f=t(o,5),v=f[0],h=f[1],y=f[2],C=f[3],p=f[4];if(u(!v.startsWith('RCT')&&!v.startsWith('RK'),"Module name prefixes should've been stripped by the native side but wasn't for "+v),!h&&!y)return{name:v};var M={};return y&&y.forEach(function(n,t){var o=C&&c(C,t),f=p&&c(p,t);u(!o||!f,'Cannot have a method that is both async and a sync hook');var v=o?'promise':f?'sync':'async';M[n]=s(l,t,v)}),n(M,h),null==M.getConstants?M.getConstants=function(){return h||Object.freeze({})}:console.warn("Unable to define method 'getConstants()' on NativeModule '"+v+"'. NativeModule '"+v+"' already has a constant or method called 'getConstants'. Please remove it."),{name:v,module:M}}function f(n,t){u(g.nativeRequireModuleConfig,"Can't lazily create module without nativeRequireModuleConfig");var o=l(g.nativeRequireModuleConfig(n),t);return o&&o.module}function s(n,t,l){var f=null;return(f='promise'===l?function(){for(var u=arguments.length,l=new Array(u),f=0;f<u;f++)l[f]=arguments[f];var s=new Error;return s.framesToPop=1,new Promise(function(u,f){o.enqueueNativeCall(n,t,l,function(n){return u(n)},function(n){return f(v(n,s))})})}:function(){for(var f=arguments.length,s=new Array(f),c=0;c<f;c++)s[c]=arguments[c];var v=s.length>0?s[s.length-1]:null,h=s.length>1?s[s.length-2]:null,y='function'==typeof v,C='function'==typeof h;C&&u(y,'Cannot have a non-function arg after a function arg.');var p=y?v:null,M=C?h:null,b=y+C;if(s=s.slice(0,s.length-b),'sync'===l)return o.callNativeSyncHook(n,t,s,M,p);o.enqueueNativeCall(n,t,s,M,p)}).type=l,f}function c(n,t){return-1!==n.indexOf(t)}function v(t,o){return n(o,t||{})}g.__fbGenNativeModule=l;var h={};if(g.nativeModuleProxy)h=g.nativeModuleProxy;else if(!g.nativeExtensions){var y=g.__fbBatchedBridgeConfig;u(y,'__fbBatchedBridgeConfig is not set, cannot invoke native modules');var C=r(d[4]);(y.remoteModuleConfig||[]).forEach(function(n,t){var o=l(n,t);o&&(o.module?h[o.name]=o.module:C(h,o.name,{get:function(){return f(o.name,t)}}))})}m.exports=h},23,[24,25,29,16,39]);
__d(function(g,r,i,a,m,e,d){function t(){return m.exports=t=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var p in o)Object.prototype.hasOwnProperty.call(o,p)&&(t[p]=o[p])}return t},t.apply(this,arguments)}m.exports=t},24,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u,c){return n(u)||t(u,c)||o()}},25,[26,27,28]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n))return n}},26,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t,n){var o=[],l=!0,u=!1,f=void 0;try{for(var y,c=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(l=(y=c.next()).done)&&(o.push(y.value),!n||o.length!==n);l=!0);}catch(t){u=!0,f=t}finally{try{l||null==c.return||c.return()}finally{if(u)throw f}}return o}},27,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},28,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=new(r(d[0]));Object.defineProperty(g,'__fbBatchedBridge',{configurable:!0,value:t}),m.exports=t},29,[30]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),l=r(d[1]),u=r(d[2]),s=r(d[3]),n=r(d[4]),h=(r(d[5]),r(d[6])),o=r(d[7]),c=(r(d[8]),(function(){function c(){l(this,c),this._lazyCallableModules={},this._queue=[[],[],[],0],this._successCallbacks=new Map,this._failureCallbacks=new Map,this._callID=0,this._lastFlush=0,this._eventLoopStartTime=Date.now(),this._immediatesCallback=null,this.callFunctionReturnFlushedQueue=this.callFunctionReturnFlushedQueue.bind(this),this.callFunctionReturnResultAndFlushedQueue=this.callFunctionReturnResultAndFlushedQueue.bind(this),this.flushedQueue=this.flushedQueue.bind(this),this.invokeCallbackAndReturnFlushedQueue=this.invokeCallbackAndReturnFlushedQueue.bind(this)}return u(c,[{key:"callFunctionReturnFlushedQueue",value:function(t,l,u){var s=this;return this.__guard(function(){s.__callFunction(t,l,u)}),this.flushedQueue()}},{key:"callFunctionReturnResultAndFlushedQueue",value:function(t,l,u){var s,n=this;return this.__guard(function(){s=n.__callFunction(t,l,u)}),[s,this.flushedQueue()]}},{key:"invokeCallbackAndReturnFlushedQueue",value:function(t,l){var u=this;return this.__guard(function(){u.__invokeCallback(t,l)}),this.flushedQueue()}},{key:"flushedQueue",value:function(){var t=this;this.__guard(function(){t.__callImmediates()});var l=this._queue;return this._queue=[[],[],[],this._callID],l[0].length?l:null}},{key:"getEventLoopRunningTime",value:function(){return Date.now()-this._eventLoopStartTime}},{key:"registerCallableModule",value:function(t,l){this._lazyCallableModules[t]=function(){return l}}},{key:"registerLazyCallableModule",value:function(t,l){var u,s=l;this._lazyCallableModules[t]=function(){return s&&(u=s(),s=null),u}}},{key:"getCallableModule",value:function(t){var l=this._lazyCallableModules[t];return l?l():null}},{key:"callNativeSyncHook",value:function(t,l,u,s,n){this.processCallbacks(t,l,u,s,n);try{return g.nativeCallSyncHook(t,l,u)}catch(t){throw'object'==typeof t&&null!=t&&void 0===t.framesToPop&&/^Exception in HostFunction: /.test(t.message)&&(t.framesToPop=2),t}}},{key:"processCallbacks",value:function(t,l,u,s,n){(s||n)&&(s&&u.push(this._callID<<1),n&&u.push(this._callID<<1|1),this._successCallbacks.set(this._callID,n),this._failureCallbacks.set(this._callID,s)),this._callID++}},{key:"enqueueNativeCall",value:function(t,l,u,s,h){this.processCallbacks(t,l,u,s,h),this._queue[0].push(t),this._queue[1].push(l),this._queue[2].push(u);var o=Date.now();if(g.nativeFlushQueueImmediate&&o-this._lastFlush>=5){var c=this._queue;this._queue=[[],[],[],this._callID],this._lastFlush=o,g.nativeFlushQueueImmediate(c)}n.counterEvent('pending_js_to_native_queue',this._queue[0].length),this.__spy&&this.__spy({type:1,module:t+'',method:l,args:u})}},{key:"createDebugLookup",value:function(t,l,u){}},{key:"setImmediatesCallback",value:function(t){this._immediatesCallback=t}},{key:"__guard",value:function(t){if(this.__shouldPauseOnThrow())t();else try{t()}catch(t){s.reportFatalError(t)}}},{key:"__shouldPauseOnThrow",value:function(){return'undefined'!=typeof DebuggerInternal&&!0===DebuggerInternal.shouldPauseOnThrow}},{key:"__callImmediates",value:function(){n.beginEvent('JSTimers.callImmediates()'),null!=this._immediatesCallback&&this._immediatesCallback(),n.endEvent()}},{key:"__callFunction",value:function(t,l,u){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush,this.__spy?n.beginEvent(t+"."+l+"("+o(u)+")"):n.beginEvent(t+"."+l+"(...)"),this.__spy&&this.__spy({type:0,module:t,method:l,args:u});var s=this.getCallableModule(t);h(!!s,'Module %s is not a registered callable module (calling %s)',t,l),h(!!s[l],'Method %s does not exist on module %s',l,t);var c=s[l].apply(s,u);return n.endEvent(),c}},{key:"__invokeCallback",value:function(l,u){this._lastFlush=Date.now(),this._eventLoopStartTime=this._lastFlush;var s=l>>>1,n=1&l?this._successCallbacks.get(s):this._failureCallbacks.get(s);n&&(this._successCallbacks.delete(s),this._failureCallbacks.delete(s),n.apply(void 0,t(u)))}}],[{key:"spy",value:function(t){c.prototype.__spy=!0===t?function(t){console.log((0===t.type?'N->J
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u){return n(u)||t(u)||o()}},31,[32,33,34]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n)){for(var t=0,f=new Array(n.length);t<n.length;t++)f[t]=n[t];return f}}},32,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t){if(("function"==typeof Symbol?Symbol.iterator:"@@iterator")in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}},33,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},34,[]);
__d(function(g,r,i,a,m,e,d){m.exports=g.ErrorUtils},35,[]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);var n=!1,t=0,c={installReactHook:function(){!0},setEnabled:function(t){n!==t&&(n=t)},isEnabled:function(){return n},beginEvent:function(t,c){n&&(t='function'==typeof t?t():t,g.nativeTraceBeginSection(131072,t,c))},endEvent:function(){n&&g.nativeTraceEndSection(131072)},beginAsyncEvent:function(c){var o=t;return n&&(t++,c='function'==typeof c?c():c,g.nativeTraceBeginAsyncSection(131072,c,o)),o},endAsyncEvent:function(t,c){n&&(t='function'==typeof t?t():t,g.nativeTraceEndAsyncSection(131072,t,c))},counterEvent:function(t,c){n&&(t='function'==typeof t?t():t,g.nativeTraceCounter&&g.nativeTraceCounter(131072,t,c))}};m.exports=c},36,[16]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t){return t}},37,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t){var n,f=typeof t;if(void 0===t)n='undefined';else if(null===t)n='null';else if('string'===f)n='"'+t+'"';else if('function'===f)try{n=t.toString()}catch(t){n='[function unknown]'}else if(t instanceof Error)n=t.name+': '+t.message;else try{n=JSON.stringify(t)}catch(f){if('function'==typeof t.toString)try{n=t.toString()}catch(t){}}return n||'["'+f+'" failed to stringify]'}},38,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t,n,u){var b,c=u.get,o=!1!==u.enumerable,f=!1!==u.writable,l=!1;function s(u){b=u,l=!0,Object.defineProperty(t,n,{value:u,configurable:!0,enumerable:o,writable:f})}Object.defineProperty(t,n,{get:function(){return l||(l=!0,s(c())),b},set:s,configurable:!0,enumerable:o})}},39,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);r(d[1]),r(d[2]),m.exports=t},40,[41,43,44]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=n;var t=h(!0),o=h(!1),f=h(null),u=h(void 0),c=h(0),l=h('');function h(t){var o=new n(n._61);return o._65=1,o._55=t,o}n.resolve=function(v){if(v instanceof n)return v;if(null===v)return f;if(void 0===v)return u;if(!0===v)return t;if(!1===v)return o;if(0===v)return c;if(''===v)return l;if('object'==typeof v||'function'==typeof v)try{var p=v.then;if('function'==typeof p)return new n(p.bind(v))}catch(t){return new n(function(n,o){o(t)})}return h(v)},n.all=function(t){var o=Array.prototype.slice.call(t);return new n(function(t,f){if(0===o.length)return t([]);var u=o.length;function c(l,h){if(h&&('object'==typeof h||'function'==typeof h)){if(h instanceof n&&h.then===n.prototype.then){for(;3===h._65;)h=h._55;return 1===h._65?c(l,h._55):(2===h._65&&f(h._55),void h.then(function(n){c(l,n)},f))}var v=h.then;if('function'==typeof v)return void new n(v.bind(h)).then(function(n){c(l,n)},f)}o[l]=h,0==--u&&t(o)}for(var l=0;l<o.length;l++)c(l,o[l])})},n.reject=function(t){return new n(function(n,o){o(t)})},n.race=function(t){return new n(function(o,f){t.forEach(function(t){n.resolve(t).then(o,f)})})},n.prototype.catch=function(n){return this.then(null,n)}},41,[42]);
__d(function(g,r,i,a,m,e,d){'use strict';function n(){}var t=null,o={};function u(n){try{return n.then}catch(n){return t=n,o}}function f(n,u){try{return n(u)}catch(n){return t=n,o}}function c(n,u,f){try{n(u,f)}catch(n){return t=n,o}}function _(t){if('object'!=typeof this)throw new TypeError('Promises must be constructed via new');if('function'!=typeof t)throw new TypeError('Promise constructor\'s argument is not a function');this._40=0,this._65=0,this._55=null,this._72=null,t!==n&&b(t,this)}function s(t,o,u){return new t.constructor(function(f,c){var s=new _(n);s.then(f,c),l(t,new w(o,u,s))})}function l(n,t){for(;3===n._65;)n=n._55;if(_._37&&_._37(n),0===n._65)return 0===n._40?(n._40=1,void(n._72=t)):1===n._40?(n._40=2,void(n._72=[n._72,t])):void n._72.push(t);h(n,t)}function h(n,u){setImmediate(function(){var c=1===n._65?u.onFulfilled:u.onRejected;if(null!==c){var _=f(c,n._55);_===o?v(u.promise,t):p(u.promise,_)}else 1===n._65?p(u.promise,n._55):v(u.promise,n._55)})}function p(n,f){if(f===n)return v(n,new TypeError('A promise cannot be resolved with itself.'));if(f&&('object'==typeof f||'function'==typeof f)){var c=u(f);if(c===o)return v(n,t);if(c===n.then&&f instanceof _)return n._65=3,n._55=f,void y(n);if('function'==typeof c)return void b(c.bind(f),n)}n._65=1,n._55=f,y(n)}function v(n,t){n._65=2,n._55=t,_._87&&_._87(n,t),y(n)}function y(n){if(1===n._40&&(l(n,n._72),n._72=null),2===n._40){for(var t=0;t<n._72.length;t++)l(n,n._72[t]);n._72=null}}function w(n,t,o){this.onFulfilled='function'==typeof n?n:null,this.onRejected='function'==typeof t?t:null,this.promise=o}function b(n,u){var f=!1,_=c(n,function(n){f||(f=!0,p(u,n))},function(n){f||(f=!0,v(u,n))});f||_!==o||(f=!0,v(u,t))}m.exports=_,_._37=null,_._87=null,_._61=n,_.prototype.then=function(t,o){if(this.constructor!==_)return s(this,t,o);var u=new _(n);return l(this,new w(t,o,u)),u}},42,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t,t.prototype.done=function(t,n){(arguments.length?this.then.apply(this,arguments):this).then(null,function(t){setTimeout(function(){throw t},0)})}},43,[42]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=n,n.prototype.finally=function(t){return this.then(function(o){return n.resolve(t()).then(function(){return o})},function(o){return n.resolve(t()).then(function(){throw o})})}},44,[42]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),l=r(d[6]),h=r(d[7]),v=(function(v){function p(){var n;t(this,p);var u=new h;return(n=s(this,o(p).call(this,u))).sharedSubscriber=u,n}return c(p,l),n(p,[{key:"addListener",value:function(t,n,s){return u(o(p.prototype),"addListener",this).call(this,t,n,s)}},{key:"removeAllListeners",value:function(t){u(o(p.prototype),"removeAllListeners",this).call(this,t)}},{key:"removeSubscription",value:function(t){t.emitter!==this?t.emitter.removeSubscription(t):u(o(p.prototype),"removeSubscription",this).call(this,t)}}]),p})();m.exports=new v},45,[4,5,6,9,46,10,48,51]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);function n(c,f,o){return"undefined"!=typeof Reflect&&Reflect.get?m.exports=n=Reflect.get:m.exports=n=function(n,c,f){var o=t(n,c);if(o){var u=Object.getOwnPropertyDescriptor(o,c);return u.get?u.get.call(f):u.value}},n(c,f,o||c)}m.exports=n},46,[47]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n,o){for(;!Object.prototype.hasOwnProperty.call(n,o)&&null!==(n=t(n)););return n}},47,[9]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),o=r(d[4]),c=function(){return!0},b=(function(){function b(n){t(this,b),this._subscriber=n||new u}return n(b,[{key:"addListener",value:function(t,n,u){return this._subscriber.addSubscription(t,new s(this,this._subscriber,n,u))}},{key:"once",value:function(t,n,s){var u=this;return this.addListener(t,function(){u.removeCurrentListener();for(var t=arguments.length,o=new Array(t),c=0;c<t;c++)o[c]=arguments[c];n.apply(s,o)})}},{key:"removeAllListeners",value:function(t){this._subscriber.removeAllSubscriptions(t)}},{key:"removeCurrentListener",value:function(){o(!!this._currentSubscription,'Not in an emitting cycle; there is no current subscription'),this.removeSubscription(this._currentSubscription)}},{key:"removeSubscription",value:function(t){o(t.emitter===this,'Subscription does not belong to this emitter.'),this._subscriber.removeSubscription(t)}},{key:"listeners",value:function(t){var n=this._subscriber.getSubscriptionsForType(t);return n?n.filter(c).map(function(t){return t.listener}):[]}},{key:"emit",value:function(t){var n=this._subscriber.getSubscriptionsForType(t);if(n){for(var s=0,u=n.length;s<u;s++){var o=n[s];o&&o.listener&&(this._currentSubscription=o,o.listener.apply(o.context,Array.prototype.slice.call(arguments,1)))}this._currentSubscription=null}}},{key:"removeListener",value:function(t,n){var s=this._subscriber.getSubscriptionsForType(t);if(s)for(var u=0,o=s.length;u<o;u++){var c=s[u];c&&c.listener===n&&c.remove()}}}]),b})();m.exports=b},48,[4,5,49,51,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),h=(function(h){function v(n,u,c,h){var f;return t(this,v),(f=s(this,o(v).call(this,u))).emitter=n,f.listener=c,f.context=h,f}return u(v,c),n(v,[{key:"remove",value:function(){this.emitter.removeSubscription(this)}}]),v})();m.exports=h},49,[4,5,6,9,10,50]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=(function(){function n(s){t(this,n),this.subscriber=s}return s(n,[{key:"remove",value:function(){this.subscriber.removeSubscription(this)}}]),n})();m.exports=n},50,[4,5]);
__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),t=r(d[1]),n=r(d[2]),o=(function(){function o(){s(this,o),this._subscriptionsForType={},this._currentSubscription=null}return t(o,[{key:"addSubscription",value:function(s,t){n(t.subscriber===this,'The subscriber of the subscription is incorrectly set.'),this._subscriptionsForType[s]||(this._subscriptionsForType[s]=[]);var o=this._subscriptionsForType[s].length;return this._subscriptionsForType[s].push(t),t.eventType=s,t.key=o,t}},{key:"removeAllSubscriptions",value:function(s){void 0===s?this._subscriptionsForType={}:delete this._subscriptionsForType[s]}},{key:"removeSubscription",value:function(s){var t=s.eventType,n=s.key,o=this._subscriptionsForType[t];o&&delete o[n]}},{key:"getSubscriptionsForType",value:function(s){return this._subscriptionsForType[s]}}]),o})();m.exports=o},51,[4,5,16]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);var t=r(d[1]),s=r(d[2]),l=(r(d[3]),r(d[4])),n=r(d[5]),o=r(d[6]),c=r(d[7]).default,h=l.forwardRef(function(h,y){var z,f,p=h.onLayout,v=h.style,w=h.size,L=s(h,["onLayout","style","size"]);switch(w){case'small':z=u.sizeSmall,f='small';break;case'large':z=u.sizeLarge,f='large';break;default:z={height:h.size,width:h.size}}var S=t({},L,{ref:y,style:z,size:f});return l.createElement(o,{onLayout:p,style:n.compose(u.container,v)},l.createElement(c,S))});h.displayName='ActivityIndicator',h.defaultProps={animating:!0,color:'#999999',hidesWhenStopped:!0,size:'small'};var u=n.create({container:{alignItems:'center',justifyContent:'center'},sizeSmall:{width:20,height:20},sizeLarge:{width:36,height:36}});m.exports=h},52,[24,53,55,57,59,62,90,186]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n){for(var o=1;o<arguments.length;o++){var c=null!=arguments[o]?arguments[o]:{},f=Object.keys(c);'function'==typeof Object.getOwnPropertySymbols&&(f=f.concat(Object.getOwnPropertySymbols(c).filter(function(t){return Object.getOwnPropertyDescriptor(c,t).enumerable}))),f.forEach(function(o){t(n,o,c[o])})}return n}},53,[54]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,t,u){return t in n?Object.defineProperty(n,t,{value:u,enumerable:!0,configurable:!0,writable:!0}):n[t]=u,n}},54,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n,o){if(null==n)return{};var l,p,b=t(n,o);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);for(p=0;p<c.length;p++)l=c[p],o.indexOf(l)>=0||Object.prototype.propertyIsEnumerable.call(n,l)&&(b[l]=n[l])}return b}},55,[56]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,t){if(null==n)return{};var f,u,o={},c=Object.keys(n);for(u=0;u<c.length;u++)f=c[u],t.indexOf(f)>=0||(o[f]=n[f]);return o}},56,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),s={__constants:null,OS:'ios',get Version(){return this.constants.osVersion},get constants(){return null==this.__constants&&(this.__constants=t.default.getConstants()),this.__constants},get isPad(){return'pad'===this.constants.interfaceIdiom},get isTVOS(){return s.isTV},get isTV(){return'tv'===this.constants.interfaceIdiom},get isTesting(){return!1},select:function(t){return'ios'in t?t.ios:t.default}};m.exports=s},57,[3,58]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('PlatformConstants');e.default=n},58,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},59,[60]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for"),o=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.element"):60103,u=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.portal"):60106,f=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.fragment"):60107,l=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.strict_mode"):60108,c=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.profiler"):60114,s=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.provider"):60109,y=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.context"):60110,p=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.forward_ref"):60112,b=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense"):60113,v=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense_list"):60120,S=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.memo"):60115,h=n?("function"==typeof Symbol?Symbol.for:"@@for")("react.lazy"):60116;n&&("function"==typeof Symbol?Symbol.for:"@@for")("react.fundamental"),n&&("function"==typeof Symbol?Symbol.for:"@@for")("react.responder");var _="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.iterator:"@@iterator");function k(t){for(var n=t.message,o="https://reactjs.org/docs/error-decoder.html?invariant="+n,u=1;u<arguments.length;u++)o+="&args[]="+encodeURIComponent(arguments[u]);return t.message="Minified React error #"+n+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",t}var $={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w={};function C(t,n,o){this.props=t,this.context=n,this.refs=w,this.updater=o||$}function E(){}function R(t,n,o){this.props=t,this.context=n,this.refs=w,this.updater=o||$}C.prototype.isReactComponent={},C.prototype.setState=function(t,n){if("object"!=typeof t&&"function"!=typeof t&&null!=t)throw k(Error(85));this.updater.enqueueSetState(this,t,n,"setState")},C.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")},E.prototype=C.prototype;var x=R.prototype=new E;x.constructor=R,t(x,C.prototype),x.isPureReactComponent=!0;var P={current:null},j={suspense:null},O={current:null},A=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};function U(t,n,u){var f=void 0,l={},c=null,s=null;if(null!=n)for(f in void 0!==n.ref&&(s=n.ref),void 0!==n.key&&(c=""+n.key),n)A.call(n,f)&&!I.hasOwnProperty(f)&&(l[f]=n[f]);var y=arguments.length-2;if(1===y)l.children=u;else if(1<y){for(var p=Array(y),b=0;b<y;b++)p[b]=arguments[b+2];l.children=p}if(t&&t.defaultProps)for(f in y=t.defaultProps)void 0===l[f]&&(l[f]=y[f]);return{$$typeof:o,type:t,key:c,ref:s,props:l,_owner:O.current}}function L(t,n){return{$$typeof:o,type:t.type,key:n,ref:t.ref,props:t.props,_owner:t._owner}}function q(t){return"object"==typeof t&&null!==t&&t.$$typeof===o}function F(t){var n={"=":"=0",":":"=2"};return"$"+(""+t).replace(/[=:]/g,function(t){return n[t]})}var M=/\/+/g,D=[];function V(t,n,o,u){if(D.length){var f=D.pop();return f.result=t,f.keyPrefix=n,f.func=o,f.context=u,f.count=0,f}return{result:t,keyPrefix:n,func:o,context:u,count:0}}function B(t){t.result=null,t.keyPrefix=null,t.func=null,t.context=null,t.count=0,10>D.length&&D.push(t)}function N(t,n,f,l){var c=typeof t;"undefined"!==c&&"boolean"!==c||(t=null);var s=!1;if(null===t)s=!0;else switch(c){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case o:case u:s=!0}}if(s)return f(l,t,""===n?"."+z(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var y=0;y<t.length;y++){var p=n+z(c=t[y],y);s+=N(c,p,f,l)}else if(null===t||"object"!=typeof t?p=null:p="function"==typeof(p=_&&t[_]||t["@@iterator"])?p:null,"function"==typeof p)for(t=p.call(t),y=0;!(c=t.next()).done;)s+=N(c=c.value,p=n+z(c,y++),f,l);else if("object"===c)throw f=""+t,k(Error(31),"[object Object]"===f?"object with keys {"+Object.keys(t).join(", ")+"}":f,"");return s}function T
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;function f(t){if(null===t||void 0===t)throw new TypeError('Object.assign cannot be called with null or undefined');return Object(t)}m.exports=(function(){try{if(!Object.assign)return!1;var n=new String('abc');if(n[5]='de','5'===Object.getOwnPropertyNames(n)[0])return!1;for(var o={},c=0;c<10;c++)o['_'+String.fromCharCode(c)]=c;if('0123456789'!==Object.getOwnPropertyNames(o).map(function(t){return o[t]}).join(''))return!1;var f={};return'abcdefghijklmnopqrst'.split('').forEach(function(t){f[t]=t}),'abcdefghijklmnopqrst'===Object.keys(t({},f)).join('')}catch(t){return!1}})()?Object.assign:function(t,u){for(var s,b,l=f(t),p=1;p<arguments.length;p++){for(var j in s=Object(arguments[p]))o.call(s,j)&&(l[j]=s[j]);if(n){b=n(s);for(var O=0;O<b.length;O++)c.call(s,b[O])&&(l[b[O]]=s[b[O]])}}return l}},61,[24]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),l=r(d[2]),n=(r(d[3]),r(d[4])),s=o.roundToNearestPixel(.4);0===s&&(s=1/o.get());var u={position:'absolute',left:0,right:0,top:0,bottom:0};m.exports={hairlineWidth:s,absoluteFill:u,absoluteFillObject:u,compose:function(t,o){return null!=t&&null!=o?[t,o]:null!=t?t:o},flatten:n,setStyleAttributePreprocessor:function(o,n){var s;if(!0===l[o])s={};else{if('object'!=typeof l[o])return void console.error(o+" is not a valid style attribute");s=l[o]}l[o]=t({},s,{process:n})},create:function(t){return t}}},62,[53,63,66,88,89]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=r(d[2]),o=(function(){function o(){t(this,o)}return n(o,null,[{key:"get",value:function(){return u.get('window').scale}},{key:"getFontScale",value:function(){return u.get('window').fontScale||o.get()}},{key:"getPixelSizeForLayoutSize",value:function(t){return Math.round(t*o.get())}},{key:"roundToNearestPixel",value:function(t){var n=o.get();return Math.round(t*n)/n}},{key:"startDetecting",value:function(){}}]),o})();m.exports=o},63,[4,5,64]);
__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),s=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),v=new l.default,h=!1,w=(function(){function t(){(0,s.default)(this,t)}return(0,o.default)(t,null,[{key:"get",value:function(t){return(0,f.default)(n[t],'No dimension set for key '+t),n[t]}},{key:"set",value:function(t){var s=t.screen,o=t.window,l=t.windowPhysicalPixels;l&&(o={width:l.width/l.scale,height:l.height/l.scale,scale:l.scale,fontScale:l.fontScale});var c=t.screenPhysicalPixels;c?s={width:c.width/c.scale,height:c.height/c.scale,scale:c.scale,fontScale:c.fontScale}:null==s&&(s=o),n={window:o,screen:s},h?v.emit('change',n):h=!0}},{key:"addEventListener",value:function(n,t){(0,f.default)('change'===n,'Trying to subscribe to unknown event: "%s"',n),v.addListener(n,t)}},{key:"removeEventListener",value:function(n,t){(0,f.default)('change'===n,'Trying to remove listener for unknown event: "%s"',n),v.removeListener(n,t)}}]),t})(),y=g.nativeExtensions&&g.nativeExtensions.DeviceInfo&&g.nativeExtensions.DeviceInfo.Dimensions;y||(c.default.addListener('didUpdateDimensions',function(n){w.set(n)}),y=u.default.getConstants().Dimensions),w.set(y),m.exports=w},64,[3,4,5,48,45,65,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var f=t(r(d[1])).getEnforcing('DeviceInfo');e.default=f},65,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';for(var o=r(d[0]),t=r(d[1]),l=r(d[2]),C=r(d[3]),s=r(d[4]),b=r(d[5]),c=r(d[6]),f={},n=Object.keys(o({},C,l,t)),h=0;h<n.length;h++){f[n[h]]=!0}f.transform={process:b},f.shadowOffset={diff:c};var p={process:s};f.backgroundColor=p,f.borderBottomColor=p,f.borderColor=p,f.borderLeftColor=p,f.borderRightColor=p,f.borderTopColor=p,f.borderStartColor=p,f.borderEndColor=p,f.color=p,f.shadowColor=p,f.textDecorationColor=p,f.tintColor=p,f.textShadowColor=p,f.overlayColor=p,m.exports=f},66,[53,67,82,83,84,85,87]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),t=r(d[1]),n=r(d[2]),b=r(d[3]),u=r(d[4]),s=r(d[5]),c=o({},n,b,u,{resizeMode:s.oneOf(['center','contain','cover','repeat','stretch']),backfaceVisibility:s.oneOf(['visible','hidden']),backgroundColor:t,borderColor:t,borderWidth:s.number,borderRadius:s.number,overflow:s.oneOf(['visible','hidden']),tintColor:t,opacity:s.number,overlayColor:s.string,borderTopLeftRadius:s.number,borderTopRightRadius:s.number,borderBottomLeftRadius:s.number,borderBottomRightRadius:s.number});m.exports=c},67,[53,68,70,74,75,71]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),f=function(f,l,o,b,t,u){var s=l[o];return void 0===s||null===s?f?new Error('Required '+t+' `'+(u||o)+'` was not specified in `'+b+'`.'):void 0:'number'!=typeof s&&null===n(s)?new Error('Invalid '+t+' `'+(u||o)+'` supplied to `'+b+'`: '+s+"\nValid color formats are\n - '#f0f' (#rgb)\n - '#f0fc' (#rgba)\n - '#ff00ff' (#rrggbb)\n - '#ff00ff00' (#rrggbbaa)\n - 'rgb(255, 255, 255)'\n - 'rgba(255, 255, 255, 1.0)'\n - 'hsl(360, 100%, 100%)'\n - 'hsla(360, 100%, 100%, 1.0)'\n - 'transparent'\n - 'red'\n - 0xff00ff00 (0xrrggbbaa)\n"):void 0},l=f.bind(null,!1);l.isRequired=f.bind(null,!0),m.exports=l},68,[69]);
__d(function(g,r,i,a,m,e,d){'use strict';function l(l,n,t){return t<0&&(t+=1),t>1&&(t-=1),t<.16666666666666666?l+6*(n-l)*t:t<.5?n:t<.6666666666666666?l+(n-l)*(.6666666666666666-t)*6:l}function n(n,t,o){var u=o<.5?o*(1+t):o+t-o*t,s=2*o-u,h=l(s,u,n+.3333333333333333),c=l(s,u,n),b=l(s,u,n-.3333333333333333);return Math.round(255*h)<<24|Math.round(255*c)<<16|Math.round(255*b)<<8}var t,o='[-+]?\\d*\\.?\\d+',u="[-+]?\\d*\\.?\\d+%";function s(){for(var l=arguments.length,n=new Array(l),t=0;t<l;t++)n[t]=arguments[t];return'\\(\\s*('+n.join(')\\s*,\\s*(')+')\\s*\\)'}function h(l){var n=parseInt(l,10);return n<0?0:n>255?255:n}function c(l){return(parseFloat(l)%360+360)%360/360}function b(l){var n=parseFloat(l);return n<0?0:n>1?255:Math.round(255*n)}function p(l){var n=parseFloat(l);return n<0?0:n>100?1:n/100}var y={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199};m.exports=function(l){var k,f=(void 0===t&&(t={rgb:new RegExp('rgb'+s(o,o,o)),rgba:new RegExp('rgba'+s(o,o,o,o)),hsl:new RegExp('hsl'+s(o,u,u)),hsla:new RegExp('hsla'+s(o,u,u,o)),hex3:/^#([0-9a-fA-F]{1})
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t={display:n.oneOf(['none','flex']),width:n.oneOfType([n.number,n.string]),height:n.oneOfType([n.number,n.string]),start:n.oneOfType([n.number,n.string]),end:n.oneOfType([n.number,n.string]),top:n.oneOfType([n.number,n.string]),left:n.oneOfType([n.number,n.string]),right:n.oneOfType([n.number,n.string]),bottom:n.oneOfType([n.number,n.string]),minWidth:n.oneOfType([n.number,n.string]),maxWidth:n.oneOfType([n.number,n.string]),minHeight:n.oneOfType([n.number,n.string]),maxHeight:n.oneOfType([n.number,n.string]),margin:n.oneOfType([n.number,n.string]),marginVertical:n.oneOfType([n.number,n.string]),marginHorizontal:n.oneOfType([n.number,n.string]),marginTop:n.oneOfType([n.number,n.string]),marginBottom:n.oneOfType([n.number,n.string]),marginLeft:n.oneOfType([n.number,n.string]),marginRight:n.oneOfType([n.number,n.string]),marginStart:n.oneOfType([n.number,n.string]),marginEnd:n.oneOfType([n.number,n.string]),padding:n.oneOfType([n.number,n.string]),paddingVertical:n.oneOfType([n.number,n.string]),paddingHorizontal:n.oneOfType([n.number,n.string]),paddingTop:n.oneOfType([n.number,n.string]),paddingBottom:n.oneOfType([n.number,n.string]),paddingLeft:n.oneOfType([n.number,n.string]),paddingRight:n.oneOfType([n.number,n.string]),paddingStart:n.oneOfType([n.number,n.string]),paddingEnd:n.oneOfType([n.number,n.string]),borderWidth:n.number,borderTopWidth:n.number,borderStartWidth:n.number,borderEndWidth:n.number,borderRightWidth:n.number,borderBottomWidth:n.number,borderLeftWidth:n.number,position:n.oneOf(['absolute','relative']),flexDirection:n.oneOf(['row','row-reverse','column','column-reverse']),flexWrap:n.oneOf(['wrap','nowrap','wrap-reverse']),justifyContent:n.oneOf(['flex-start','flex-end','center','space-between','space-around','space-evenly']),alignItems:n.oneOf(['flex-start','flex-end','center','stretch','baseline']),alignSelf:n.oneOf(['auto','flex-start','flex-end','center','stretch','baseline']),alignContent:n.oneOf(['flex-start','flex-end','center','stretch','space-between','space-around']),overflow:n.oneOf(['visible','hidden','scroll']),flex:n.number,flexGrow:n.number,flexShrink:n.number,flexBasis:n.oneOfType([n.number,n.string]),aspectRatio:n.number,zIndex:n.number,direction:n.oneOf(['inherit','ltr','rtl'])};m.exports=t},70,[71]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},71,[72]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(){}function o(){}o.resetWarningCache=t,m.exports=function(){function p(t,o,p,c,s,y){if(y!==n){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name='Invariant Violation',f}}function c(){return p}p.isRequired=p;var s={array:p,bool:p,func:p,number:p,object:p,string:p,symbol:p,any:p,arrayOf:c,element:p,elementType:p,instanceOf:c,node:p,objectOf:c,oneOf:c,oneOfType:c,shape:c,exact:c,checkPropTypes:o,resetWarningCache:t};return s.PropTypes=s,s}},72,[73]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},73,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),h=r(d[1]),o={shadowColor:s,shadowOffset:h.shape({width:h.number,height:h.number}),shadowOpacity:h.number,shadowRadius:h.number};m.exports=o},74,[68,71]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n={transform:t.arrayOf(t.oneOfType([t.shape({perspective:t.number}),t.shape({rotate:t.string}),t.shape({rotateX:t.string}),t.shape({rotateY:t.string}),t.shape({rotateZ:t.string}),t.shape({scale:t.number}),t.shape({scaleX:t.number}),t.shape({scaleY:t.number}),t.shape({translateX:t.number}),t.shape({translateY:t.number}),t.shape({skewX:t.string}),t.shape({skewY:t.string})])),transformMatrix:function(t,s,n){if(t[s])return new Error("The transformMatrix style property is deprecated. Use `transform: [{ matrix: ... }]` instead.")},decomposedMatrix:function(t,s,n){if(t[s])return new Error("The decomposedMatrix style property is deprecated. Use `transform: [...]` instead.")},scaleX:s(t.number,'Use the transform prop instead.'),scaleY:s(t.number,'Use the transform prop instead.'),rotation:s(t.number,'Use the transform prop instead.'),translateX:s(t.number,'Use the transform prop instead.'),translateY:s(t.number,'Use the transform prop instead.')};m.exports=n},75,[71,76]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=function(t,o){return function(c,u,p){n.getViewManagerConfig(p)||void 0===c[u]||console.warn("`"+u+"` supplied to `"+p+"` has been deprecated. "+o);for(var s=arguments.length,f=new Array(s>3?s-3:0),l=3;l<s;l++)f[l-3]=arguments[l];return t.apply(void 0,[c,u,p].concat(f))}}},76,[77]);
__d(function(g,r,i,a,m,e,d){'use strict';var s=!0===g.RN$Bridgeless?r(d[0]):r(d[1]);m.exports=s},77,[78,79]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports={getViewManagerConfig:function(n){return console.warn('Attempting to get config for view manager: '+n),null},getConstants:function(){return{}},getConstantsForViewManager:function(n){},getDefaultEventTypes:function(){return[]},playTouchSound:function(){},lazilyLoadView:function(n){},createView:function(n,t,o,u){},updateView:function(n,t,o){},focus:function(n){},blur:function(n){},findSubviewIn:function(n,t,o){},dispatchViewManagerCommand:function(n,t,o){},measure:function(n,t){},measureInWindow:function(n,t){},viewIsDescendantOf:function(n,t,o){},measureLayout:function(n,t,o,u){},measureLayoutRelativeToParent:function(n,t,o){},setJSResponder:function(n,t){},clearJSResponder:function(){},configureNextLayoutAnimation:function(n,t,o){},removeSubviewsFromContainerWithID:function(n){},replaceExistingNonRootView:function(n,t){},setChildren:function(n,t){},manageChildren:function(n,t,o,u,c,f){},setLayoutAnimationEnabledExperimental:function(n){},sendAccessibilityEvent:function(n,t){},showPopupMenu:function(n,t,o,u){},dismissPopupMenu:function(){}}},78,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=n(r(d[1])),o=n(r(d[2])),f=r(d[3]),u=(r(d[4]),r(d[5])),c=r(d[6]),s={},l=new Set,v={},C=!1;function w(){return C||(v=o.default.getConstants(),C=!0),v}var M=(0,t.default)({},o.default,{getConstants:function(){return w()},getViewManagerConfig:function(n){if(void 0===s[n]&&o.default.getConstantsForViewManager)try{s[n]=o.default.getConstantsForViewManager(n)}catch(t){s[n]=null}var t=s[n];if(t)return t;if(!g.nativeCallSyncHook)return t;if(o.default.lazilyLoadView&&!l.has(n)){var f=o.default.lazilyLoadView(n);l.add(n),f.viewConfig&&(w()[n]=f.viewConfig,y(n))}return s[n]}});function y(n){var t=w()[n];s[n]=t,t.Manager&&(c(t,'Constants',{get:function(){var n=f[t.Manager],o={};return n&&Object.keys(n).forEach(function(t){var f=n[t];'function'!=typeof f&&(o[t]=f)}),o}}),c(t,'Commands',{get:function(){var n=f[t.Manager],o={},u=0;return n&&Object.keys(n).forEach(function(t){'function'==typeof n[t]&&(o[t]=u++)}),o}}))}o.default.getViewManagerConfig=M.getViewManagerConfig,Object.keys(w()).forEach(function(n){y(n)}),g.nativeCallSyncHook||Object.keys(w()).forEach(function(n){u.includes(n)||(s[n]||(s[n]=w()[n]),c(o.default,n,{get:function(){return console.warn("Accessing view manager configs directly off UIManager via UIManager['"+n+"'] is no longer supported. Use UIManager.getViewManagerConfig('"+n+"') instead."),M.getViewManagerConfig(n)}}))}),m.exports=M},79,[3,53,80,23,57,81,39]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('UIManager');e.default=n},80,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=['clearJSResponder','configureNextLayoutAnimation','createView','dismissPopupMenu','dispatchViewManagerCommand','findSubviewIn','getConstantsForViewManager','getDefaultEventTypes','manageChildren','measure','measureInWindow','measureLayout','measureLayoutRelativeToParent','playTouchSound','removeRootView','removeSubviewsFromContainerWithID','replaceExistingNonRootView','sendAccessibilityEvent','setChildren','setJSResponder','setLayoutAnimationEnabledExperimental','showPopupMenu','updateView','viewIsDescendantOf','PopupMenu','LazyViewManagersEnabled','ViewManagerNames','StyleConstants','AccessibilityEventTypes','UIView','getViewManagerConfig','blur','focus','genericBubblingEventTypes','genericDirectEventTypes','lazilyLoadView']},81,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),u=t({},o,{color:n,fontFamily:l.string,fontSize:l.number,fontStyle:l.oneOf(['normal','italic']),fontWeight:l.oneOf(['normal','bold','100','200','300','400','500','600','700','800','900']),fontVariant:l.arrayOf(l.oneOf(['small-caps','oldstyle-nums','lining-nums','tabular-nums','proportional-nums'])),textShadowOffset:l.shape({width:l.number,height:l.number}),textShadowRadius:l.number,textShadowColor:n,letterSpacing:l.number,lineHeight:l.number,textAlign:l.oneOf(['auto','left','right','center','justify']),textAlignVertical:l.oneOf(['auto','top','bottom','center']),includeFontPadding:l.bool,textDecorationLine:l.oneOf(['none','underline','line-through','underline line-through']),textDecorationStyle:l.oneOf(['solid','double','dotted','dashed']),textDecorationColor:n,textTransform:l.oneOf(['none','capitalize','uppercase','lowercase']),writingDirection:l.oneOf(['auto','ltr','rtl'])});m.exports=u},82,[53,68,83,71]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),b=r(d[1]),t=r(d[2]),u=r(d[3]),n=r(d[4]),s=r(d[5]),l=o({},t,u,n,{backfaceVisibility:s.oneOf(['visible','hidden']),backgroundColor:b,borderColor:b,borderTopColor:b,borderRightColor:b,borderBottomColor:b,borderLeftColor:b,borderStartColor:b,borderEndColor:b,borderRadius:s.number,borderTopLeftRadius:s.number,borderTopRightRadius:s.number,borderTopStartRadius:s.number,borderTopEndRadius:s.number,borderBottomLeftRadius:s.number,borderBottomRightRadius:s.number,borderBottomStartRadius:s.number,borderBottomEndRadius:s.number,borderStyle:s.oneOf(['solid','dotted','dashed']),borderWidth:s.number,borderTopWidth:s.number,borderRightWidth:s.number,borderBottomWidth:s.number,borderLeftWidth:s.number,opacity:s.number,elevation:s.number});m.exports=l},83,[53,68,70,74,75,71]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);var n=r(d[1]);m.exports=function(t){if(void 0===t||null===t)return t;var u=n(t);return null!==u&&void 0!==u?u=(u<<24|u>>>8)>>>0:void 0}},84,[57,69]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]),r(d[1]),r(d[2]),r(d[3]);m.exports=function(t){return t}},85,[86,57,16,38]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o={createIdentityMatrix:function(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},createCopy:function(t){return[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]]},createOrthographic:function(t,n,o,u,s,c){return[2/(n-t),0,0,0,0,2/(u-o),0,0,0,0,-2/(c-s),0,-(n+t)/(n-t),-(u+o)/(u-o),-(c+s)/(c-s),1]},createFrustum:function(t,n,o,u,s,c){var v=1/(n-t),f=1/(u-o),h=1/(s-c);return[s*v*2,0,0,0,0,s*f*2,0,0,(n+t)*v,(u+o)*f,(c+s)*h,-1,0,0,c*s*h*2,0]},createPerspective:function(t,n,o,u){var s=1/Math.tan(t/2),c=1/(o-u);return[s/n,0,0,0,0,s,0,0,0,0,(u+o)*c,-1,0,0,u*o*c*2,0]},createTranslate2d:function(t,n){var u=o.createIdentityMatrix();return o.reuseTranslate2dCommand(u,t,n),u},reuseTranslate2dCommand:function(t,n,o){t[12]=n,t[13]=o},reuseTranslate3dCommand:function(t,n,o,u){t[12]=n,t[13]=o,t[14]=u},createScale:function(t){var n=o.createIdentityMatrix();return o.reuseScaleCommand(n,t),n},reuseScaleCommand:function(t,n){t[0]=n,t[5]=n},reuseScale3dCommand:function(t,n,o,u){t[0]=n,t[5]=o,t[10]=u},reusePerspectiveCommand:function(t,n){t[11]=-1/n},reuseScaleXCommand:function(t,n){t[0]=n},reuseScaleYCommand:function(t,n){t[5]=n},reuseScaleZCommand:function(t,n){t[10]=n},reuseRotateXCommand:function(t,n){t[5]=Math.cos(n),t[6]=Math.sin(n),t[9]=-Math.sin(n),t[10]=Math.cos(n)},reuseRotateYCommand:function(t,n){t[0]=Math.cos(n),t[2]=-Math.sin(n),t[8]=Math.sin(n),t[10]=Math.cos(n)},reuseRotateZCommand:function(t,n){t[0]=Math.cos(n),t[1]=Math.sin(n),t[4]=-Math.sin(n),t[5]=Math.cos(n)},createRotateZ:function(t){var n=o.createIdentityMatrix();return o.reuseRotateZCommand(n,t),n},reuseSkewXCommand:function(t,n){t[4]=Math.tan(n)},reuseSkewYCommand:function(t,n){t[1]=Math.tan(n)},multiplyInto:function(t,n,o){var u=n[0],s=n[1],c=n[2],v=n[3],f=n[4],h=n[5],M=n[6],l=n[7],C=n[8],p=n[9],x=n[10],T=n[11],y=n[12],S=n[13],D=n[14],P=n[15],q=o[0],X=o[1],Y=o[2],I=o[3];t[0]=q*u+X*f+Y*C+I*y,t[1]=q*s+X*h+Y*p+I*S,t[2]=q*c+X*M+Y*x+I*D,t[3]=q*v+X*l+Y*T+I*P,q=o[4],X=o[5],Y=o[6],I=o[7],t[4]=q*u+X*f+Y*C+I*y,t[5]=q*s+X*h+Y*p+I*S,t[6]=q*c+X*M+Y*x+I*D,t[7]=q*v+X*l+Y*T+I*P,q=o[8],X=o[9],Y=o[10],I=o[11],t[8]=q*u+X*f+Y*C+I*y,t[9]=q*s+X*h+Y*p+I*S,t[10]=q*c+X*M+Y*x+I*D,t[11]=q*v+X*l+Y*T+I*P,q=o[12],X=o[13],Y=o[14],I=o[15],t[12]=q*u+X*f+Y*C+I*y,t[13]=q*s+X*h+Y*p+I*S,t[14]=q*c+X*M+Y*x+I*D,t[15]=q*v+X*l+Y*T+I*P},determinant:function(n){var o=t(n,16),u=o[0],s=o[1],c=o[2],v=o[3],f=o[4],h=o[5],M=o[6],l=o[7],C=o[8],p=o[9],x=o[10],T=o[11],y=o[12],S=o[13],D=o[14],P=o[15];return v*M*p*y-c*l*p*y-v*h*x*y+s*l*x*y+c*h*T*y-s*M*T*y-v*M*C*S+c*l*C*S+v*f*x*S-u*l*x*S-c*f*T*S+u*M*T*S+v*h*C*D-s*l*C*D-v*f*p*D+u*l*p*D+s*f*T*D-u*h*T*D-c*h*C*P+s*M*C*P+c*f*p*P-u*M*p*P-s*f*x*P+u*h*x*P},inverse:function(n){var u=o.determinant(n);if(!u)return n;var s=t(n,16),c=s[0],v=s[1],f=s[2],h=s[3],M=s[4],l=s[5],C=s[6],p=s[7],x=s[8],T=s[9],y=s[10],S=s[11],D=s[12],P=s[13],q=s[14],X=s[15];return[(C*S*P-p*y*P+p*T*q-l*S*q-C*T*X+l*y*X)/u,(h*y*P-f*S*P-h*T*q+v*S*q+f*T*X-v*y*X)/u,(f*p*P-h*C*P+h*l*q-v*p*q-f*l*X+v*C*X)/u,(h*C*T-f*p*T-h*l*y+v*p*y+f*l*S-v*C*S)/u,(p*y*D-C*S*D-p*x*q+M*S*q+C*x*X-M*y*X)/u,(f*S*D-h*y*D+h*x*q-c*S*q-f*x*X+c*y*X)/u,(h*C*D-f*p*D-h*M*q+c*p*q+f*M*X-c*C*X)/u,(f*p*x-h*C*x+h*M*y-c*p*y-f*M*S+c*C*S)/u,(l*S*D-p*T*D+p*x*P-M*S*P-l*x*X+M*T*X)/u,(h*T*D-v*S*D-h*x*P+c*S*P+v*x*X-c*T*X)/u,(v*p*D-h*l*D+h*M*P-c*p*P-v*M*X+c*l*X)/u,(h*l*x-v*p*x-h*M*T+c*p*T+v*M*S-c*l*S)/u,(C*T*D-l*y*D-C*x*P+M*y*P+l*x*q-M*T*q)/u,(v*y*D-f*T*D+f*x*P-c*y*P-v*x*q+c*T*q)/u,(f*l*D-v*C*D-f*M*P+c*C*P+v*M*q-c*l*q)/u,(v*C*x-f*l*x+f*M*T-c*C*T-v*M*y+c*l*y)/u]},transpose:function(t){return[t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15]]},multiplyVectorByMatrix:function(n,o){var u=t(n,4),s=u[0],c=u[1],v=u[2],f=u[3];return[s*o[0]+c*o[4]+v*o[8]+f*o[12],s*o[1]+c*o[5]+v*o[9]+f*o[13],s*o[2]+c*o[6]+v*o[10]+f*o[14],s*o[3]+c*o[7]+v*o[11]+f*o[15]]},v3Length:function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])},v3Normalize:function(t,n){var u=1/(n||o.v3Length(t));return[t[0]*u,t[1]*u,t[2]*u]},v3Dot:function(t,n){return t[0]*n[0]+t[1]*
__d(function(g,r,i,a,m,e,d){'use strict';var t={width:void 0,height:void 0};m.exports=function(h,n){return(h=h||t)!==(n=n||t)&&(h.width!==n.width||h.height!==n.height)}},87,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=(r(d[2]),r(d[3]),r(d[4]),r(d[5]),(function(){function u(){t(this,u)}return n(u,null,[{key:"validateStyleProp",value:function(t,n,u){}},{key:"validateStyle",value:function(t,n){}},{key:"addValidStylePropTypes",value:function(t){}}]),u})());m.exports=u},88,[4,5,67,82,83,16]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function t(n){if(null!==n&&'object'==typeof n){if(!Array.isArray(n))return n;for(var f={},o=0,u=n.length;o<u;++o){var c=t(n[o]);if(c)for(var s in c)f[s]=c[s]}return f}}},89,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0]).default},90,[91]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.__INTERNAL_VIEW_CONFIG=void 0;var _;r(d[0]),r(d[1]),r(d[2]),r(d[3]);_=r(d[4])('RCTView');e.__INTERNAL_VIEW_CONFIG=void 0;var t=_;e.default=t},91,[57,92,170,171,184]);
__d(function(g,r,i,a,m,e,d){'use strict';var t;t=r(d[0]),m.exports=t},92,[93]);
__d(function(e,t,n,r,i,l,a){"use strict";var o=t(a[0]);t(a[1]);var u=t(a[2]),c=t(a[3]),s=t(a[4]);function f(e){return e.name="Invariant Violation",e}var d=null,p={};function h(){if(d)for(var e in p){var t=p[e],n=d.indexOf(e);if(!(-1<n))throw f(Error("EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `"+e+"`."));if(!g[n]){if(!t.extractEvents)throw f(Error("EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `"+e+"` does not."));for(var r in g[n]=t,n=t.eventTypes){var i=void 0,l=n[r],a=t,o=r;if(v.hasOwnProperty(o))throw f(Error("EventPluginHub: More than one plugin attempted to publish the same event name, `"+o+"`."));v[o]=l;var u=l.phasedRegistrationNames;if(u){for(i in u)u.hasOwnProperty(i)&&m(u[i],a);i=!0}else l.registrationName?(m(l.registrationName,a),i=!0):i=!1;if(!i)throw f(Error("EventPluginRegistry: Failed to publish event `"+r+"` for plugin `"+e+"`."))}}}}function m(e,t){if(y[e])throw f(Error("EventPluginHub: More than one plugin attempted to publish the same registration name, `"+e+"`."));y[e]=t}var g=[],v={},y={};function b(e,t,n,r,i,l,a,o,u){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(e){this.onError(e)}}var T=!1,E=null,x=!1,w=null,S={onError:function(e){T=!0,E=e}};function k(e,t,n,r,i,l,a,o,u){T=!1,E=null,b.apply(S,arguments)}function C(e,t,n,r,i,l,a,o,u){if(k.apply(this,arguments),T){if(!T)throw f(Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue."));var c=E;T=!1,E=null,x||(x=!0,w=c)}}var _=null,P=null,R=null;function N(e,t,n){var r=e.type||"unknown-event";e.currentTarget=R(n),C(r,t,void 0,e),e.currentTarget=null}function I(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))throw f(Error("executeDirectDispatch(...): Invalid `event`."));return e.currentTarget=t?R(n):null,t=t?t(e):null,e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,t}function U(e,t){if(null==t)throw f(Error("accumulateInto(...): Accumulated items must not be null or undefined."));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function z(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var M=null;function A(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)N(e,t[r],n[r]);else t&&N(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}var D=function(e){if(d)throw f(Error("EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."));d=Array.prototype.slice.call(e),h()},F=function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!p.hasOwnProperty(t)||p[t]!==r){if(p[t])throw f(Error("EventPluginRegistry: Cannot inject two different event plugins using the same name, `"+t+"`."));p[t]=r,n=!0}}n&&h()};function O(e,t){var n=e.stateNode;if(!n)return null;var r=_(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw f(Error("Expected `"+t+"` listener to be a function, instead got a value of `"+typeof n+"` type."));return n}function j(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function W(e,t,n){for(var r=[];e;)r.push(e),e=j(e);for(e=r.length;0<e--;)t(r[e],"captured",n);for(e=0;e<r.length;e++)t(r[e],"bubbled",n)}function H(e,t,n){(t=O(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=U(n._dispatchListeners,t),n._dispatchInstances=U(n._dispatchInstances,e))}function Q(e){e&&e.dispatchConfig.phasedRegistrationNames&&W(e._targetInst,H,e)}function B(e){if(e&&e.dis
__d(function(g,r,i,a,m,e,d){r(d[0])},94,[95]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=Date.now();r(d[0]),r(d[1]),r(d[2]),r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8]),r(d[9]),r(d[10]);var n=r(d[11]);n.markPoint('initializeCore_start',n.currentTimestamp()-(Date.now()-t)),n.markPoint('initializeCore_end')},95,[96,97,98,106,108,110,116,141,146,147,160,154]);
__d(function(g,r,i,a,m,e,d){'use strict';void 0===g.GLOBAL&&(g.GLOBAL=g),void 0===g.window&&(g.window=g),void 0===g.self&&(g.self=g),g.process=g.process||{},g.process.env=g.process.env||{},g.process.env.NODE_ENV||(g.process.env.NODE_ENV='production')},96,[]);
__d(function(g,r,i,a,m,e,d){'use strict';if(g.__RCTProfileIsProfiling){var t=r(d[0]);t.installReactHook(),t.setEnabled(!0)}},97,[36]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]);if(o.installConsoleErrorReporter(),!g.__fbDisableExceptionsManager){r(d[1]).setGlobalHandler(function(t,n){try{o.handleException(t,n)}catch(o){throw console.log('Failed to print error: ',o.message),t}})}},98,[99,35]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=r(d[1]),s=r(d[2]),t=r(d[3]),l=(function(l){function c(){var t,l;n(this,c);for(var p=arguments.length,f=new Array(p),u=0;u<p;u++)f[u]=arguments[u];return(l=o(this,(t=s(c)).call.apply(t,[this].concat(f)))).name='',l}return t(c,l),c})(r(d[4])(Error)),c=0;function p(n,o){var s=r(d[5]).default;if(s){var t=r(d[6])(n),l=++c,p=n.message||'',f=p;null!=n.componentStack&&(f+="\n\nThis error is located at:"+n.componentStack);var u=null==n.name||''===n.name?'':n.name+": ",E='console.error'===n.name;f.startsWith(u)||(f=u+f),E||(console._errorOriginal?console._errorOriginal(f):console.error(f)),f=null==n.jsEngine?f:f+", js engine: "+n.jsEngine,s.reportException({message:f,originalMessage:f===p?null:p,name:null==n.name||''===n.name?null:n.name,componentStack:'string'==typeof n.componentStack?n.componentStack:null,stack:t,id:l,isFatal:o,extraData:{jsEngine:n.jsEngine,rawStack:n.stack,framesPopped:n.framesToPop}})}}function f(){if(console.reportErrorsAsExceptions)if(arguments[0]&&arguments[0].stack)p(arguments[0],!1);else{console._errorOriginal.apply(console,arguments);var n=r(d[7]),o=Array.prototype.map.call(arguments,n).join(', ');if('"Warning: '===o.slice(0,10))return;var s=new l(o);s.name='console.error',s.framesToPop=(s.framesToPop||0)+1,p(s,!1)}else console._errorOriginal.apply(console,arguments)}m.exports={handleException:function(n,o){p(n instanceof Error?n:new l(n),o)},installConsoleErrorReporter:function(){console._errorOriginal||(console._errorOriginal=console.error.bind(console),console.error=f,void 0===console.reportErrorsAsExceptions&&(console.reportErrorsAsExceptions=!0))},SyntheticError:l}},99,[4,6,9,10,100,103,104,38]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]);function c(f){var p="function"==typeof Map?new Map:void 0;return m.exports=c=function(c){if(null===c||!o(c))return c;if("function"!=typeof c)throw new TypeError("Super expression must either be null or a function");if(void 0!==p){if(p.has(c))return p.get(c);p.set(c,f)}function f(){return u(c,arguments,t(this).constructor)}return f.prototype=Object.create(c.prototype,{constructor:{value:f,enumerable:!1,writable:!0,configurable:!0}}),n(f,c)},c(f)}m.exports=c},100,[9,11,101,102]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){return-1!==Function.toString.call(n).indexOf("[native code]")}},101,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);function n(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}function c(o,u,f){return n()?m.exports=c=Reflect.construct:m.exports=c=function(n,c,o){var u=[null];u.push.apply(u,c);var f=new(Function.bind.apply(n,u));return o&&t(f,o.prototype),f},c.apply(null,arguments)}m.exports=c},102,[11]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),n=(r(d[2]),o.getEnforcing('ExceptionsManager')),c={reportFatalException:function(t,o,c){n.reportFatalException(t,o,c)},reportSoftException:function(t,o,c){n.reportSoftException(t,o,c)},updateExceptionMessage:function(t,o,c){n.updateExceptionMessage(t,o,c)},dismissRedbox:function(){},reportException:function(t){t.isFatal?c.reportFatalException(t.message,t.stack,t.id):c.reportSoftException(t.message,t.stack,t.id)}},p=c;e.default=p},103,[2,22,57]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t){if(!t||!t.stack)return[];for(var s=r(d[0]),o=Array.isArray(t.stack)?t.stack:s.parse(t.stack),f='number'==typeof t.framesToPop?t.framesToPop:0;f--;)o.shift();return o}},104,[105]);
__d(function(g,r,i,a,m,e,d){var n,l;n=this,l=function(n){'use strict';var l='<unknown>';var u=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,t=/\((\S*)(?::(\d+))(?::(\d+))\)/;function o(n){var o=u.exec(n);if(!o)return null;var c=o[2]&&0===o[2].indexOf('native'),s=o[2]&&0===o[2].indexOf('eval'),f=t.exec(o[2]);return s&&null!=f&&(o[2]=f[1],o[3]=f[2],o[4]=f[3]),{file:c?null:o[2],methodName:o[1]||l,arguments:c?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}var c=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function s(n){var u=c.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}var f=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,v=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function b(n){var u=f.exec(n);if(!u)return null;var t=u[3]&&u[3].indexOf(' > eval')>-1,o=v.exec(u[3]);return t&&null!=o&&(u[3]=o[1],u[4]=o[2],u[5]=null),{file:u[3],methodName:u[1]||l,arguments:u[2]?u[2].split(','):[],lineNumber:u[4]?+u[4]:null,column:u[5]?+u[5]:null}}var p=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function x(n){var u=p.exec(n);return u?{file:u[3],methodName:u[1]||l,arguments:[],lineNumber:+u[4],column:u[5]?+u[5]:null}:null}var h=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function N(n){var u=h.exec(n);return u?{file:u[2],methodName:u[1]||l,arguments:[],lineNumber:+u[3],column:u[4]?+u[4]:null}:null}n.parse=function(n){return n.split('\n').reduce(function(n,l){var u=o(l)||s(l)||b(l)||N(l)||x(l);return u&&n.push(u),n},[])},Object.defineProperty(n,'__esModule',{value:!0})},'object'==typeof e&&void 0!==m?l(e):'function'==typeof define&&define.amd?define(['exports'],l):l((n=n||self).stackTraceParser={})},105,[]);
__d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('Promise',function(){return r(d[1])})},106,[107,40]);
__d(function(g,r,i,a,m,e,d){'use strict';var l=r(d[0]);function o(o,t,n){var c=Object.getOwnPropertyDescriptor(o,t),b=c||{},f=b.enumerable,u=b.writable,p=b.configurable;!c||p?l(o,t,{get:n,enumerable:!1!==f,writable:!1!==u}):console.error('Failed to set polyfill. '+t+' is not configurable.')}m.exports={polyfillObjectProperty:o,polyfillGlobal:function(l,t){o(g,l,t)}}},107,[39]);
__d(function(g,r,i,a,m,e,d){'use strict';(0,r(d[0]).polyfillGlobal)('regeneratorRuntime',function(){return delete g.regeneratorRuntime,r(d[1])})},108,[107,109]);
__d(function(g,r,i,a,m,e,d){var t=(function(t){"use strict";var n,o=Object.prototype,c=o.hasOwnProperty,u="function"==typeof Symbol?Symbol:{},h=u.iterator||"@@iterator",f=u.asyncIterator||"@@asyncIterator",s=u.toStringTag||"@@toStringTag";function l(t,n,o,c){var u=n&&n.prototype instanceof E?n:E,h=Object.create(u.prototype),f=new A(c||[]);return h._invoke=F(t,o,f),h}function p(t,n,o){try{return{type:"normal",arg:t.call(n,o)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var y="suspendedStart",v="suspendedYield",w="executing",L="completed",x={};function E(){}function b(){}function _(){}var j={};j[h]=function(){return this};var O=Object.getPrototypeOf,k=O&&O(O(R([])));k&&k!==o&&c.call(k,h)&&(j=k);var G=_.prototype=E.prototype=Object.create(j);function N(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function P(t){function n(o,u,h,f){var s=p(t[o],t,u);if("throw"!==s.type){var l=s.arg,y=l.value;return y&&"object"==typeof y&&c.call(y,"__await")?Promise.resolve(y.__await).then(function(t){n("next",t,h,f)},function(t){n("throw",t,h,f)}):Promise.resolve(y).then(function(t){l.value=t,h(l)},function(t){return n("throw",t,h,f)})}f(s.arg)}var o;this._invoke=function(t,c){function u(){return new Promise(function(o,u){n(t,c,o,u)})}return o=o?o.then(u,u):u()}}function F(t,n,o){var c=y;return function(u,h){if(c===w)throw new Error("Generator is already running");if(c===L){if("throw"===u)throw h;return Y()}for(o.method=u,o.arg=h;;){var f=o.delegate;if(f){var s=S(f,o);if(s){if(s===x)continue;return s}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(c===y)throw c=L,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c=w;var l=p(t,n,o);if("normal"===l.type){if(c=o.done?L:v,l.arg===x)continue;return{value:l.arg,done:o.done}}"throw"===l.type&&(c=L,o.method="throw",o.arg=l.arg)}}}function S(t,o){var c=t.iterator[o.method];if(c===n){if(o.delegate=null,"throw"===o.method){if(t.iterator.return&&(o.method="return",o.arg=n,S(t,o),"throw"===o.method))return x;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return x}var u=p(c,t.iterator,o.arg);if("throw"===u.type)return o.method="throw",o.arg=u.arg,o.delegate=null,x;var h=u.arg;return h?h.done?(o[t.resultName]=h.value,o.next=t.nextLoc,"return"!==o.method&&(o.method="next",o.arg=n),o.delegate=null,x):h:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,x)}function T(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function I(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function R(t){if(t){var o=t[h];if(o)return o.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var u=-1,f=function o(){for(;++u<t.length;)if(c.call(t,u))return o.value=t[u],o.done=!1,o;return o.value=n,o.done=!0,o};return f.next=f}}return{next:Y}}function Y(){return{value:n,done:!0}}return b.prototype=G.constructor=_,_.constructor=b,_[s]=b.displayName="GeneratorFunction",t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===b||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,_):(t.__proto__=_,s in t||(t[s]="GeneratorFunction")),t.prototype=Object.create(G),t},t.awrap=function(t){return{__await:t}},N(P.prototype),P.prototype[f]=function(){return this},t.AsyncIterator=P,t.async=function(n,o,c,u){var h=new P(l(n,o,c,u));return t.isGeneratorFunction(o)?h:h.next().then(function(t){return t.done?t.value:h.next()})},N(G),G[s]="Generator",G[h]=function(){return this},G.toString=function(){return"[object Generator]"},t.keys=function(t){var n=[];for(var o in t)n.push(o);return n.reverse(),function o(){for(;n.length;){var c=n.pop();if(c in t)return o.value=c,o.done=!1,o}return o.done=!0,o}},t.values=R,A.prototype={constructor:A,reset:function(t){if(this.prev=0,this.next=0,th
__d(function(g,r,i,a,m,e,d){'use strict';if(!g.RN$Bridgeless){var l=r(d[0]).polyfillGlobal,t=function(t){l(t,function(){return r(d[1])[t]})};t('setTimeout'),t('setInterval'),t('setImmediate'),t('clearTimeout'),t('clearInterval'),t('clearImmediate'),t('requestAnimationFrame'),t('cancelAnimationFrame'),t('requestIdleCallback'),t('cancelIdleCallback')}},110,[107,111]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=r(d[2]),l=(r(d[3]),r(d[4]),r(d[5])),u=null;function o(){return u||(u=r(d[6])),u()}var c=16.666666666666668,f=[],s=[],v=[],h=[],I=[],T={},b=[],p=1,w=null,k=!1;function q(){var t=v.indexOf(null);return-1===t&&(t=v.length),t}function x(t,n){var l=p++,u=q();return v[u]=l,f[u]=t,s[u]=n,l}function y(t,n,l){r(d[7])(t<=p,'Tried to call timer with ID %s but no such timer exists.',t);var u=v.indexOf(t);if(-1!==u){var h=s[u],I=f[u];if(I&&h){'setTimeout'!==h&&'setImmediate'!==h&&'requestAnimationFrame'!==h&&'requestIdleCallback'!==h||A(u);try{'setTimeout'===h||'setInterval'===h||'setImmediate'===h?I():'requestAnimationFrame'===h?I(o()):'requestIdleCallback'===h?I({timeRemaining:function(){return Math.max(0,c-(o()-n))},didTimeout:!!l}):console.error('Tried to call a callback with invalid type: '+h)}catch(t){w?w.push(t):w=[t]}}else console.error('No callback found for timerID '+t)}}function C(){if(h.length>0){var t=h.slice();h=[];for(var n=0;n<t.length;++n)y(t[n],0)}return h.length>0}function A(t){v[t]=null,f[t]=null,s[t]=null,b[t]=null}function D(t){if(null!=t){var n=v.indexOf(t);if(-1!==n){A(n);var l=s[n];'setImmediate'!==l&&'requestIdleCallback'!==l&&E(t)}}}var O,F={setTimeout:function(t,n){for(var l=arguments.length,u=new Array(l>2?l-2:0),o=2;o<l;o++)u[o-2]=arguments[o];var c=x(function(){return t.apply(void 0,u)},'setTimeout');return N(c,n||0,Date.now(),!1),c},setInterval:function(t,n){for(var l=arguments.length,u=new Array(l>2?l-2:0),o=2;o<l;o++)u[o-2]=arguments[o];var c=x(function(){return t.apply(void 0,u)},'setInterval');return N(c,n||0,Date.now(),!0),c},setImmediate:function(t){for(var n=arguments.length,l=new Array(n>1?n-1:0),u=1;u<n;u++)l[u-1]=arguments[u];var o=x(function(){return t.apply(void 0,l)},'setImmediate');return h.push(o),o},requestAnimationFrame:function(t){var n=x(t,'requestAnimationFrame');return N(n,1,Date.now(),!1),n},requestIdleCallback:function(t,n){0===I.length&&_(!0);var l=n&&n.timeout,u=x(null!=l?function(n){var l=T[u];return l&&(F.clearTimeout(l),delete T[u]),t(n)}:t,'requestIdleCallback');if(I.push(u),null!=l){var c=F.setTimeout(function(){var t=I.indexOf(u);t>-1&&(I.splice(t,1),y(u,o(),!0)),delete T[u],0===I.length&&_(!1)},l);T[u]=c}return u},cancelIdleCallback:function(t){D(t);var n=I.indexOf(t);-1!==n&&I.splice(n,1);var l=T[t];l&&(F.clearTimeout(l),delete T[t]),0===I.length&&_(!1)},clearTimeout:function(t){D(t)},clearInterval:function(t){D(t)},clearImmediate:function(t){D(t);var n=h.indexOf(t);-1!==n&&h.splice(n,1)},cancelAnimationFrame:function(t){D(t)},callTimers:function(t){l(0!==t.length,'Cannot call `callTimers` with an empty list of IDs.'),w=null;for(var n=0;n<t.length;n++)y(t[n],0);if(w){var u=w.length;if(u>1)for(var o=1;o<u;o++)F.setTimeout(function(t){throw t}.bind(null,w[o]),0);throw w[0]}},callIdleCallbacks:function(t){if(!(c-(o()-t)<1)){if(w=null,I.length>0){var n=I.slice();I=[];for(var l=0;l<n.length;++l)y(n[l],t)}0===I.length&&_(!1),w&&w.forEach(function(t){return F.setTimeout(function(){throw t},0)})}},callImmediates:function(){for(w=null;C(););w&&w.forEach(function(t){return F.setTimeout(function(){throw t},0)})},emitTimeDriftWarning:function(t){k||(k=!0,console.warn(t))}};function N(n,u,o,c){l(t.default,'NativeTiming is available'),t.default.createTimer(n,u,o,c)}function E(n){l(t.default,'NativeTiming is available'),t.default.deleteTimer(n)}function _(n){l(t.default,'NativeTiming is available'),t.default.setSendIdleEvents(n)}t.default?O=F:(console.warn("Timing native module is not available, can't set timers."),O={callImmediates:F.callImmediates,setImmediate:F.setImmediate}),n.setImmediatesCallback(O.callImmediates.bind(O)),m.exports=O},111,[3,112,29,57,36,16,113,18]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('Timing');e.default=u},112,[2,22]);
__d(function(g,r,i,a,m,e,d){"use strict";var n,t=r(d[0]);n=t.now?function(){return t.now()}:function(){return Date.now()},m.exports=n},113,[114]);
__d(function(g,r,i,a,m,e,d){'use strict';var n;r(d[0]).canUseDOM&&(n=window.performance||window.msPerformance||window.webkitPerformance),m.exports=n||{}},114,[115]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=!('undefined'==typeof window||!window.document||!window.document.createElement),t={canUseDOM:n,canUseWorkers:'undefined'!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};m.exports=t},115,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]).polyfillGlobal;n('XMLHttpRequest',function(){return r(d[1])}),n('FormData',function(){return r(d[2])}),n('fetch',function(){return r(d[3]).fetch}),n('Headers',function(){return r(d[3]).Headers}),n('Request',function(){return r(d[3]).Request}),n('Response',function(){return r(d[3]).Response}),n('WebSocket',function(){return r(d[4])}),n('Blob',function(){return r(d[5])}),n('File',function(){return r(d[6])}),n('FileReader',function(){return r(d[7])}),n('URL',function(){return r(d[8]).URL}),n('URLSearchParams',function(){return r(d[8]).URLSearchParams}),n('AbortController',function(){return r(d[9]).AbortController}),n('AbortSignal',function(){return r(d[9]).AbortSignal})},116,[107,117,129,130,132,120,135,136,138,139]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),o=r(d[3]),h=r(d[4]),p=r(d[5]),u=r(d[6]),_=r(d[7]),c=r(d[8]),l=r(d[9]),y=r(d[10]),v=r(d[11]),f=r(d[12]);_.isAvailable&&_.addNetworkingHandler();var R=0,E=1,b=2,k=3,N=4,w={arraybuffer:'function'==typeof g.ArrayBuffer,blob:'function'==typeof g.Blob,document:!1,json:!0,text:!0,'':!0},S=['abort','error','load','loadstart','progress','timeout','loadend'],D=S.concat('readystatechange'),T=(function(t){function s(){return o(this,s),h(this,p(s).apply(this,arguments))}return u(s,t),s})(c.apply(void 0,S)),q=(function(c){function S(){var t;return o(this,S),(t=h(this,p(S).call(this))).UNSENT=R,t.OPENED=E,t.HEADERS_RECEIVED=b,t.LOADING=k,t.DONE=N,t.readyState=R,t.status=0,t.timeout=0,t.withCredentials=!0,t.upload=new T,t._aborted=!1,t._hasError=!1,t._method=null,t._response='',t._url=null,t._timedOut=!1,t._trackingName='unknown',t._incrementalEvents=!1,t._reset(),t}return u(S,c),n(S,null,[{key:"setInterceptor",value:function(t){S._interceptor=t}}]),n(S,[{key:"_reset",value:function(){this.readyState=this.UNSENT,this.responseHeaders=void 0,this.status=0,delete this.responseURL,this._requestId=null,this._cachedResponse=void 0,this._hasError=!1,this._headers={},this._response='',this._responseType='',this._sent=!1,this._lowerCaseResponseHeaders={},this._clearSubscriptions(),this._timedOut=!1}},{key:"__didCreateRequest",value:function(t){this._requestId=t,S._interceptor&&S._interceptor.requestSent(t,this._url||'',this._method||'GET',this._headers)}},{key:"__didUploadProgress",value:function(t,s,n){t===this._requestId&&this.upload.dispatchEvent({type:'progress',lengthComputable:!0,loaded:s,total:n})}},{key:"__didReceiveResponse",value:function(t,s,n,o){t===this._requestId&&(this.status=s,this.setResponseHeaders(n),this.setReadyState(this.HEADERS_RECEIVED),o||''===o?this.responseURL=o:delete this.responseURL,S._interceptor&&S._interceptor.responseReceived(t,o||this._url||'',s,n||{}))}},{key:"__didReceiveData",value:function(t,s){t===this._requestId&&(this._response=s,this._cachedResponse=void 0,this.setReadyState(this.LOADING),S._interceptor&&S._interceptor.dataReceived(t,s))}},{key:"__didReceiveIncrementalData",value:function(t,s,n,o){t===this._requestId&&(this._response?this._response+=s:this._response=s,S._interceptor&&S._interceptor.dataReceived(t,s),this.setReadyState(this.LOADING),this.__didReceiveDataProgress(t,n,o))}},{key:"__didReceiveDataProgress",value:function(t,s,n){t===this._requestId&&this.dispatchEvent({type:'progress',lengthComputable:n>=0,loaded:s,total:n})}},{key:"__didCompleteResponse",value:function(t,s,n){t===this._requestId&&(s&&(''!==this._responseType&&'text'!==this._responseType||(this._response=s),this._hasError=!0,n&&(this._timedOut=!0)),this._clearSubscriptions(),this._requestId=null,this.setReadyState(this.DONE),s?S._interceptor&&S._interceptor.loadingFailed(t,s):S._interceptor&&S._interceptor.loadingFinished(t,this._response.length))}},{key:"_clearSubscriptions",value:function(){(this._subscriptions||[]).forEach(function(t){t&&t.remove()}),this._subscriptions=[]}},{key:"getAllResponseHeaders",value:function(){if(!this.responseHeaders)return null;var t=this.responseHeaders||{};return Object.keys(t).map(function(s){return s+': '+t[s]}).join('\r\n')}},{key:"getResponseHeader",value:function(t){var s=this._lowerCaseResponseHeaders[t.toLowerCase()];return void 0!==s?s:null}},{key:"setRequestHeader",value:function(t,s){if(this.readyState!==this.OPENED)throw new Error('Request has not been opened');this._headers[t.toLowerCase()]=String(s)}},{key:"setTrackingName",value:function(t){return this._trackingName=t,this}},{key:"open",value:function(t,s,n){if(this.readyState!==this.UNSENT)throw new Error('Cannot open, already sending');if(void 0!==n&&!n)throw new Error('Synchronous http requests are not supported');if(!s)throw new Error('Cannot load an empty url');this._method=t.toUpperCase(),this._url=s,this._aborted=!1,this.setReadyState(this.OPENED)}},{key:"send",value:function(s){var n=this;if(this.readyState!==this.OPENED)throw new Error('Request
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),l=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),n=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),s=r(d[7]),x=r(d[8]);var b=(function(){function t(){(0,u.default)(this,t)}return(0,n.default)(t,null,[{key:"createFromParts",value:function(l,o){(0,c.default)(f.default,'NativeBlobModule is available.');var u='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(t){var l=16*Math.random()|0;return('x'==t?l:3&l|8).toString(16)}),n=l.map(function(t){if(t instanceof ArrayBuffer||g.ArrayBufferView&&t instanceof g.ArrayBufferView)throw new Error("Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported");return t instanceof s?{data:t.data,type:'blob'}:{data:String(t),type:'string'}}),x=n.reduce(function(t,l){return'string'===l.type?t+g.unescape(encodeURI(l.data)).length:t+l.data.size},0);return f.default.createFromParts(n,u),t.createFromOptions({blobId:u,offset:0,size:x,type:o?o.type:'',lastModified:o?o.lastModified:Date.now()})}},{key:"createFromOptions",value:function(t){return x.register(t.blobId),(0,o.default)(Object.create(s.prototype),{data:null==t.__collector?(0,l.default)({},t,{__collector:(u=t.blobId,null==g.__blobCollectorProvider?null:g.__blobCollectorProvider(u))}):t});var u}},{key:"release",value:function(t){(0,c.default)(f.default,'NativeBlobModule is available.'),x.unregister(t),x.has(t)||f.default.release(t)}},{key:"addNetworkingHandler",value:function(){(0,c.default)(f.default,'NativeBlobModule is available.'),f.default.addNetworkingHandler()}},{key:"addWebSocketHandler",value:function(t){(0,c.default)(f.default,'NativeBlobModule is available.'),f.default.addWebSocketHandler(t)}},{key:"removeWebSocketHandler",value:function(t){(0,c.default)(f.default,'NativeBlobModule is available.'),f.default.removeWebSocketHandler(t)}},{key:"sendOverSocket",value:function(t,l){(0,c.default)(f.default,'NativeBlobModule is available.'),f.default.sendOverSocket(t.data,l)}}]),t})();b.isAvailable=!!f.default,m.exports=b},118,[3,53,24,4,5,119,16,120,121]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('BlobModule');e.default=u},119,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=(function(){function s(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],o=arguments.length>1?arguments[1]:void 0;t(this,s);var u=r(d[2]);this.data=u.createFromParts(n,o).data}return n(s,[{key:"slice",value:function(t,n){var s=r(d[2]),o=this.data,u=o.offset,l=o.size;return'number'==typeof t&&(t>l&&(t=l),u+=t,l-=t,'number'==typeof n&&(n<0&&(n=this.size+n),l=n-t)),s.createFromOptions({blobId:this.data.blobId,offset:u,size:l})}},{key:"close",value:function(){r(d[2]).release(this.data.blobId),this.data=null}},{key:"data",set:function(t){this._data=t},get:function(){if(!this._data)throw new Error('Blob has been closed and is no longer available');return this._data}},{key:"size",get:function(){return this.data.size}},{key:"type",get:function(){return this.data.type||''}}]),s})();m.exports=s},120,[4,5,118]);
__d(function(g,r,i,a,m,e,d){var n={};m.exports={register:function(t){n[t]?n[t]++:n[t]=1},unregister:function(t){n[t]&&(n[t]--,n[t]<=0&&delete n[t])},has:function(t){return n[t]&&n[t]>0}}},121,[]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var t=new WeakMap,n=new WeakMap;function o(n){var o=t.get(n);return console.assert(null!=o,"'this' is expected an Event object, but got",n),o}function l(t){null==t.passiveListener?t.event.cancelable&&(t.canceled=!0,"function"==typeof t.event.preventDefault&&t.event.preventDefault()):"undefined"!=typeof console&&"function"==typeof console.error&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener)}function u(n,o){t.set(this,{eventTarget:n,event:o,eventPhase:2,currentTarget:n,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:o.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});for(var l=Object.keys(o),u=0;u<l.length;++u){var p=l[u];p in this||Object.defineProperty(this,p,s(p))}}function s(t){return{get:function(){return o(this).event[t]},set:function(n){o(this).event[t]=n},configurable:!0,enumerable:!0}}function p(t){return{value:function(){var n=o(this).event;return n[t].apply(n,arguments)},configurable:!0,enumerable:!0}}function c(t,n){var o=Object.keys(n);if(0===o.length)return t;function l(n,o){t.call(this,n,o)}l.prototype=Object.create(t.prototype,{constructor:{value:l,configurable:!0,writable:!0}});for(var u=0;u<o.length;++u){var c=o[u];if(!(c in t.prototype)){var f="function"==typeof Object.getOwnPropertyDescriptor(n,c).value;Object.defineProperty(l.prototype,c,f?p(c):s(c))}}return l}function f(t){if(null==t||t===Object.prototype)return u;var o=n.get(t);return null==o&&(o=c(f(Object.getPrototypeOf(t)),t),n.set(t,o)),o}function v(t,n){return new(f(Object.getPrototypeOf(n)))(t,n)}function y(t){return o(t).immediateStopped}function b(t,n){o(t).eventPhase=n}function h(t,n){o(t).currentTarget=n}function w(t,n){o(t).passiveListener=n}u.prototype={get type(){return o(this).event.type},get target(){return o(this).eventTarget},get currentTarget(){return o(this).currentTarget},composedPath:function(){var t=o(this).currentTarget;return null==t?[]:[t]},get NONE(){return 0},get CAPTURING_PHASE(){return 1},get AT_TARGET(){return 2},get BUBBLING_PHASE(){return 3},get eventPhase(){return o(this).eventPhase},stopPropagation:function(){var t=o(this);t.stopped=!0,"function"==typeof t.event.stopPropagation&&t.event.stopPropagation()},stopImmediatePropagation:function(){var t=o(this);t.stopped=!0,t.immediateStopped=!0,"function"==typeof t.event.stopImmediatePropagation&&t.event.stopImmediatePropagation()},get bubbles(){return Boolean(o(this).event.bubbles)},get cancelable(){return Boolean(o(this).event.cancelable)},preventDefault:function(){l(o(this))},get defaultPrevented(){return o(this).canceled},get composed(){return Boolean(o(this).event.composed)},get timeStamp(){return o(this).timeStamp},get srcElement(){return o(this).eventTarget},get cancelBubble(){return o(this).stopped},set cancelBubble(t){if(t){var n=o(this);n.stopped=!0,"boolean"==typeof n.event.cancelBubble&&(n.event.cancelBubble=!0)}},get returnValue(){return!o(this).canceled},set returnValue(t){t||l(o(this))},initEvent:function(){}},Object.defineProperty(u.prototype,"constructor",{value:u,configurable:!0,writable:!0}),"undefined"!=typeof window&&void 0!==window.Event&&(Object.setPrototypeOf(u.prototype,window.Event.prototype),n.set(window.Event.prototype,u));var T=new WeakMap,P=3;function x(t){return null!==t&&"object"==typeof t}function E(t){var n=T.get(t);if(null==n)throw new TypeError("'this' is expected an EventTarget object, but got another value.");return n}function O(t){return{get:function(){for(var n=E(this).get(t);null!=n;){if(n.listenerType===P)return n.listener;n=n.next}return null},set:function(n){"function"==typeof n||x(n)||(n=null);for(var o=E(this),l=null,u=o.get(t);null!=u;)u.listenerType===P?null!==l?l.next=u.next:null!==u.next?o.set(t,u.next):o.delete(t):l=u,u=u.next;if(null!==n){var s={listener:n,listenerType:P,passive:!1,once:!1,next:null};null===l?o.set(t,s):l.next=s}},configurable:!0,enumerable:!0}}function j(t,n){Object.defineProperty(t,"on"+n,O(n))}
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),f=t(r(d[5])),o=t(r(d[6])),c=t(r(d[7])),h=r(d[8]),k=r(d[9]),v=(function(t){function h(){return(0,n.default)(this,h),(0,s.default)(this,(0,f.default)(h).call(this,c.default))}return(0,o.default)(h,t),(0,l.default)(h,[{key:"sendRequest",value:function(t,n,l,s,f,o,h,v,p,q){var y=k(f);c.default.sendRequest({method:t,url:l,data:(0,u.default)({},y,{trackingName:n}),headers:s,responseType:o,incrementalUpdates:h,timeout:v,withCredentials:q},p)}},{key:"abortRequest",value:function(t){c.default.abortRequest(t)}},{key:"clearCookies",value:function(t){c.default.clearCookies(t)}}]),h})(h);m.exports=new v},123,[3,53,4,5,6,9,10,124,125,126]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('Networking');e.default=n},124,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),l=r(d[3]),o=r(d[4]),u=r(d[5]),v=r(d[6]),h=(r(d[7]),r(d[8])),c=r(d[9]),p=(function(p){function _(n){var o;return t(this,_),o=s(this,l(_).call(this,h.sharedSubscriber)),c(n,'Native module cannot be null.'),o._nativeModule=n,o}return u(_,v),n(_,[{key:"addListener",value:function(t,n,s){return null!=this._nativeModule&&this._nativeModule.addListener(t),o(l(_.prototype),"addListener",this).call(this,t,n,s)}},{key:"removeAllListeners",value:function(t){c(t,'eventType argument is required.');var n=this.listeners(t).length;null!=this._nativeModule&&this._nativeModule.removeListeners(n),o(l(_.prototype),"removeAllListeners",this).call(this,t)}},{key:"removeSubscription",value:function(t){null!=this._nativeModule&&this._nativeModule.removeListeners(1),o(l(_.prototype),"removeSubscription",this).call(this,t)}}]),_})();m.exports=p},125,[4,5,6,9,46,10,48,57,45,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),f=r(d[2]);m.exports=function(s){return'string'==typeof s?{string:s}:s instanceof n?{blob:s.data}:s instanceof f?{formData:s.getParts()}:s instanceof ArrayBuffer||ArrayBuffer.isView(s)?{base64:t(s)}:s}},126,[127,120,129]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=function(f){if(f instanceof ArrayBuffer&&(f=new Uint8Array(f)),f instanceof Uint8Array)return t.fromByteArray(f);if(!ArrayBuffer.isView(f))throw new Error('data must be ArrayBuffer or typed array');var n=f,y=n.buffer,o=n.byteOffset,u=n.byteLength;return t.fromByteArray(new Uint8Array(y,o,u))}},127,[128]);
__d(function(g,r,i,a,m,e,d){'use strict';e.byteLength=function(t){var n=f(t),o=n[0],h=n[1];return 3*(o+h)/4-h},e.toByteArray=function(t){var h,u,c=f(t),C=c[0],y=c[1],s=new o(A(t,C,y)),v=0,l=y>0?C-4:C;for(u=0;u<l;u+=4)h=n[t.charCodeAt(u)]<<18|n[t.charCodeAt(u+1)]<<12|n[t.charCodeAt(u+2)]<<6|n[t.charCodeAt(u+3)],s[v++]=h>>16&255,s[v++]=h>>8&255,s[v++]=255&h;2===y&&(h=n[t.charCodeAt(u)]<<2|n[t.charCodeAt(u+1)]>>4,s[v++]=255&h);1===y&&(h=n[t.charCodeAt(u)]<<10|n[t.charCodeAt(u+1)]<<4|n[t.charCodeAt(u+2)]>>2,s[v++]=h>>8&255,s[v++]=255&h);return s},e.fromByteArray=function(n){for(var o,h=n.length,u=h%3,c=[],f=0,A=h-u;f<A;f+=16383)c.push(C(n,f,f+16383>A?A:f+16383));1===u?(o=n[h-1],c.push(t[o>>2]+t[o<<4&63]+'==')):2===u&&(o=(n[h-2]<<8)+n[h-1],c.push(t[o>>10]+t[o>>4&63]+t[o<<2&63]+'='));return c.join('')};for(var t=[],n=[],o='undefined'!=typeof Uint8Array?Uint8Array:Array,h='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',u=0,c=h.length;u<c;++u)t[u]=h[u],n[h.charCodeAt(u)]=u;function f(t){var n=t.length;if(n%4>0)throw new Error('Invalid string. Length must be a multiple of 4');var o=t.indexOf('=');return-1===o&&(o=n),[o,o===n?0:4-o%4]}function A(t,n,o){return 3*(n+o)/4-o}function C(n,o,h){for(var u,c,f=[],A=o;A<h;A+=3)u=(n[A]<<16&16711680)+(n[A+1]<<8&65280)+(255&n[A+2]),f.push(t[(c=u)>>18&63]+t[c>>12&63]+t[c>>6&63]+t[63&c]);return f.join('')}n['-'.charCodeAt(0)]=62,n['_'.charCodeAt(0)]=63},128,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),p=(function(){function p(){s(this,p),this._parts=[]}return o(p,[{key:"append",value:function(t,n){this._parts.push([t,n])}},{key:"getParts",value:function(){return this._parts.map(function(s){var o=n(s,2),p=o[0],f=o[1],u={'content-disposition':'form-data; name="'+p+'"'};return'object'==typeof f&&f?('string'==typeof f.name&&(u['content-disposition']+='; filename="'+f.name+'"'),'string'==typeof f.type&&(u['content-type']=f.type),t({},f,{headers:u,fieldName:p})):{string:String(f),headers:u,fieldName:p}})}}]),p})();m.exports=p},129,[53,25,4,5]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]),m.exports={fetch:fetch,Headers:Headers,Request:Request,Response:Response}},130,[131]);
__d(function(g,r,i,a,m,e,d){var t,o;t=this,o=function(t){'use strict';var o={searchParams:'URLSearchParams'in self,iterable:'Symbol'in self&&'iterator'in Symbol,blob:'FileReader'in self&&'Blob'in self&&(function(){try{return new Blob,!0}catch(t){return!1}})(),formData:'FormData'in self,arrayBuffer:'ArrayBuffer'in self};if(o.arrayBuffer)var n=['[object Int8Array]','[object Uint8Array]','[object Uint8ClampedArray]','[object Int16Array]','[object Uint16Array]','[object Int32Array]','[object Uint32Array]','[object Float32Array]','[object Float64Array]'],s=ArrayBuffer.isView||function(t){return t&&n.indexOf(Object.prototype.toString.call(t))>-1};function f(t){if('string'!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError('Invalid character in header field name');return t.toLowerCase()}function h(t){return'string'!=typeof t&&(t=String(t)),t}function u(t){var n={next:function(){var o=t.shift();return{done:void 0===o,value:o}}};return o.iterable&&(n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]=function(){return n}),n}function c(t){this.map={},t instanceof c?t.forEach(function(t,o){this.append(o,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(o){this.append(o,t[o])},this)}function y(t){if(t.bodyUsed)return Promise.reject(new TypeError('Already read'));t.bodyUsed=!0}function l(t){return new Promise(function(o,n){t.onload=function(){o(t.result)},t.onerror=function(){n(t.error)}})}function p(t){var o=new FileReader,n=l(o);return o.readAsArrayBuffer(t),n}function b(t){for(var o=new Uint8Array(t),n=new Array(o.length),s=0;s<o.length;s++)n[s]=String.fromCharCode(o[s]);return n.join('')}function w(t){if(t.slice)return t.slice(0);var o=new Uint8Array(t.byteLength);return o.set(new Uint8Array(t)),o.buffer}function v(){return this.bodyUsed=!1,this._initBody=function(t){var n;this._bodyInit=t,t?'string'==typeof t?this._bodyText=t:o.blob&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:o.formData&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:o.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():o.arrayBuffer&&o.blob&&((n=t)&&DataView.prototype.isPrototypeOf(n))?(this._bodyArrayBuffer=w(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(t)||s(t))?this._bodyArrayBuffer=w(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText='',this.headers.get('content-type')||('string'==typeof t?this.headers.set('content-type','text/plain;charset=UTF-8'):this._bodyBlob&&this._bodyBlob.type?this.headers.set('content-type',this._bodyBlob.type):o.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set('content-type','application/x-www-form-urlencoded;charset=UTF-8'))},o.blob&&(this.blob=function(){var t=y(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error('could not read FormData body as blob');return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?y(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(p)}),this.text=function(){var t,o,n,s=y(this);if(s)return s;if(this._bodyBlob)return t=this._bodyBlob,o=new FileReader,n=l(o),o.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(b(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error('could not read FormData body as text');return Promise.resolve(this._bodyText)},o.formData&&(this.formData=function(){return this.text().then(A)}),this.json=function(){return this.text().then(JSON.parse)},this}c.prototype.append=function(t,o){t=f(t),o=h(o);var n=this.map[t];this.map[t]=n?n+', '+o:o},c.prototype.delete=function(t){delete this.map[f(t)]},c.prototype.get=function(t){return t=f(t),this.has(t)?this.map[t]:null},c.prototype.has=function(t){return this.map.hasOwnProperty(f(t))},c.prototype.set=function(t,o){this.map[f(t)]=h(o)},c.prototy
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),o=t(r(d[2])),n=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),l=t(r(d[6])),f=t(r(d[7])),h=r(d[8]),b=r(d[9]),y=r(d[10]),p=r(d[11]),v=(r(d[12]),r(d[13])),_=r(d[14]),E=r(d[15]),k=r(d[16]),I=0,S=1,N=2,w=3,O=0,C=(function(t){function y(t,n,l){var h;(0,o.default)(this,y),(h=(0,c.default)(this,(0,u.default)(y).call(this))).CONNECTING=I,h.OPEN=S,h.CLOSING=N,h.CLOSED=w,h.readyState=I,'string'==typeof n&&(n=[n]);var b=l||{},v=b.headers,_=void 0===v?{}:v,E=(0,s.default)(b,["headers"]);return E&&'string'==typeof E.origin&&(console.warn('Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.'),_.origin=E.origin,delete E.origin),Object.keys(E).length>0&&console.warn('Unrecognized WebSocket connection option(s) `'+Object.keys(E).join('`, `')+"`. Did you mean to put these under `headers`?"),Array.isArray(n)||(n=null),h._eventEmitter=new p(f.default),h._socketId=O++,h._registerEvents(),f.default.connect(t,n,{headers:_},h._socketId),h}return(0,l.default)(y,t),(0,n.default)(y,[{key:"close",value:function(t,s){this.readyState!==this.CLOSING&&this.readyState!==this.CLOSED&&(this.readyState=this.CLOSING,this._close(t,s))}},{key:"send",value:function(t){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');if(t instanceof h)return k(b.isAvailable,'Native module BlobModule is required for blob support'),void b.sendOverSocket(t,this._socketId);if('string'!=typeof t){if(!(t instanceof ArrayBuffer||ArrayBuffer.isView(t)))throw new Error('Unsupported data type');f.default.sendBinary(E(t),this._socketId)}else f.default.send(t,this._socketId)}},{key:"ping",value:function(){if(this.readyState===this.CONNECTING)throw new Error('INVALID_STATE_ERR');f.default.ping(this._socketId)}},{key:"_close",value:function(t,s){var o='number'==typeof t?t:1e3,n='string'==typeof s?s:'';f.default.close(o,n,this._socketId),b.isAvailable&&'blob'===this._binaryType&&b.removeWebSocketHandler(this._socketId)}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var t=this;this._subscriptions=[this._eventEmitter.addListener('websocketMessage',function(s){if(s.id===t._socketId){var o=s.data;switch(s.type){case'binary':o=_.toByteArray(s.data).buffer;break;case'blob':o=b.createFromOptions(s.data)}t.dispatchEvent(new v('message',{data:o}))}}),this._eventEmitter.addListener('websocketOpen',function(s){s.id===t._socketId&&(t.readyState=t.OPEN,t.protocol=s.protocol,t.dispatchEvent(new v('open')))}),this._eventEmitter.addListener('websocketClosed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new v('close',{code:s.code,reason:s.reason})),t._unregisterEvents(),t.close())}),this._eventEmitter.addListener('websocketFailed',function(s){s.id===t._socketId&&(t.readyState=t.CLOSED,t.dispatchEvent(new v('error',{message:s.message})),t.dispatchEvent(new v('close',{message:s.message})),t._unregisterEvents(),t.close())})]}},{key:"binaryType",get:function(){return this._binaryType},set:function(t){if('blob'!==t&&'arraybuffer'!==t)throw new Error("binaryType must be either 'blob' or 'arraybuffer'");'blob'!==this._binaryType&&'blob'!==t||(k(b.isAvailable,'Native module BlobModule is required for blob support'),'blob'===t?b.addWebSocketHandler(this._socketId):b.removeWebSocketHandler(this._socketId)),this._binaryType=t}}]),y})(y.apply(void 0,['close','error','message','open']));C.CONNECTING=I,C.OPEN=S,C.CLOSING=N,C.CLOSED=w,m.exports=C},132,[3,55,4,5,6,9,10,133,120,118,122,125,57,134,128,127,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).getEnforcing('WebSocketModule');e.default=o},133,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=function n(o,c){s(this,n),this.type=o.toString(),t(this,c)}},134,[24,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),l=r(d[4]),o=r(d[5]),c=r(d[6]),h=(function(h){function f(n,l,o){var h;return t(this,f),c(null!=n&&null!=l,'Failed to construct `File`: Must pass both `parts` and `name` arguments.'),(h=s(this,u(f).call(this,n,o))).data.name=l,h}return l(f,o),n(f,[{key:"name",get:function(){return c(null!=this.data.name,'Files must have a name set.'),this.data.name}},{key:"lastModified",get:function(){return this.data.lastModified||0}}]),f})();m.exports=h},135,[4,5,6,9,10,120,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),h=t(r(d[5])),_=t(r(d[6])),l=(r(d[7]),0),c=1,y=2,f=(function(t){function f(){var t;return(0,s.default)(this,f),(t=(0,o.default)(this,(0,u.default)(f).call(this))).EMPTY=l,t.LOADING=c,t.DONE=y,t._aborted=!1,t._subscriptions=[],t._reset(),t}return(0,h.default)(f,t),(0,n.default)(f,[{key:"_reset",value:function(){this._readyState=l,this._error=null,this._result=null}},{key:"_clearSubscriptions",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_setReadyState",value:function(t){this._readyState=t,this.dispatchEvent({type:'readystatechange'}),t===y&&(this._aborted?this.dispatchEvent({type:'abort'}):this._error?this.dispatchEvent({type:'error'}):this.dispatchEvent({type:'load'}),this.dispatchEvent({type:'loadend'}))}},{key:"readAsArrayBuffer",value:function(){throw new Error('FileReader.readAsArrayBuffer is not implemented')}},{key:"readAsDataURL",value:function(t){var s=this;this._aborted=!1,_.default.readAsDataURL(t.data).then(function(t){s._aborted||(s._result=t,s._setReadyState(y))},function(t){s._aborted||(s._error=t,s._setReadyState(y))})}},{key:"readAsText",value:function(t){var s=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'UTF-8';this._aborted=!1,_.default.readAsText(t.data,n).then(function(t){s._aborted||(s._result=t,s._setReadyState(y))},function(t){s._aborted||(s._error=t,s._setReadyState(y))})}},{key:"abort",value:function(){this._aborted=!0,this._readyState!==l&&this._readyState!==y&&(this._reset(),this._setReadyState(y)),this._reset()}},{key:"readyState",get:function(){return this._readyState}},{key:"error",get:function(){return this._error}},{key:"result",get:function(){return this._result}}]),f})(r(d[8]).apply(void 0,['abort','error','load','loadstart','loadend','progress']));f.EMPTY=l,f.LOADING=c,f.DONE=y,m.exports=f},136,[3,4,5,6,9,10,137,120,122]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).getEnforcing('FileReaderModule');e.default=u},137,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.URL=e.URLSearchParams=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=(r(d[4]),null);if(u.default&&'string'==typeof u.default.getConstants().BLOB_URI_SCHEME){var f=u.default.getConstants();s=f.BLOB_URI_SCHEME+':','string'==typeof f.BLOB_URI_HOST&&(s+="//"+f.BLOB_URI_HOST+"/")}var l="function"==typeof Symbol?Symbol.iterator:"@@iterator",h=(function(){function t(o){var u=this;(0,n.default)(this,t),this._searchParams=[],'object'==typeof o&&Object.keys(o).forEach(function(t){return u.append(t,o[t])})}return(0,o.default)(t,[{key:"append",value:function(t,n){this._searchParams.push([t,n])}},{key:"delete",value:function(t){throw new Error('not implemented')}},{key:"get",value:function(t){throw new Error('not implemented')}},{key:"getAll",value:function(t){throw new Error('not implemented')}},{key:"has",value:function(t){throw new Error('not implemented')}},{key:"set",value:function(t,n){throw new Error('not implemented')}},{key:"sort",value:function(){throw new Error('not implemented')}},{key:l,value:function(){return this._searchParams["function"==typeof Symbol?Symbol.iterator:"@@iterator"]()}},{key:"toString",value:function(){if(0===this._searchParams.length)return'';var t=this._searchParams.length-1;return this._searchParams.reduce(function(n,o,u){return n+o.join('=')+(u===t?'':'&')},'')}}]),t})();function c(t){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)}e.URLSearchParams=h;var y=(function(){function t(o,u){(0,n.default)(this,t),this._searchParamsInstance=null;var s=null;if(!u||c(o))this._url=o,this._url.endsWith('/')||(this._url+='/');else{if('string'==typeof u){if(!c(s=u))throw new TypeError("Invalid base URL: "+s)}else'object'==typeof u&&(s=u.toString());s.endsWith('/')&&o.startsWith('/')&&(s=s.slice(0,s.length-1)),s.endsWith(o)&&(o=''),this._url=""+s+o}}return(0,o.default)(t,null,[{key:"createObjectURL",value:function(t){if(null===s)throw new Error('Cannot create URL for blob!');return""+s+t.data.blobId+"?offset="+t.data.offset+"&size="+t.size}},{key:"revokeObjectURL",value:function(t){}}]),(0,o.default)(t,[{key:"toJSON",value:function(){return this.toString()}},{key:"toString",value:function(){if(null===this._searchParamsInstance)return this._url;var t=this._url.indexOf('?')>-1?'&':'?';return this._url+t+this._searchParamsInstance.toString()}},{key:"hash",get:function(){throw new Error('not implemented')}},{key:"host",get:function(){throw new Error('not implemented')}},{key:"hostname",get:function(){throw new Error('not implemented')}},{key:"href",get:function(){return this.toString()}},{key:"origin",get:function(){throw new Error('not implemented')}},{key:"password",get:function(){throw new Error('not implemented')}},{key:"pathname",get:function(){throw new Error('not implemented')}},{key:"port",get:function(){throw new Error('not implemented')}},{key:"protocol",get:function(){throw new Error('not implemented')}},{key:"search",get:function(){throw new Error('not implemented')}},{key:"searchParams",get:function(){return null==this._searchParamsInstance&&(this._searchParamsInstance=new h),this._searchParamsInstance}},{key:"username",get:function(){throw new Error('not implemented')}}]),t})();e.URL=y},138,[3,4,5,119,120]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),n=r(d[2]),l=r(d[3]),b=r(d[4]);Object.defineProperty(e,'__esModule',{value:!0});var u=r(d[5]),p=(function(u){function p(){throw t(this,p),n(this,l(p).call(this)),new TypeError("AbortSignal cannot be constructed directly")}return b(p,u),o(p,[{key:"aborted",get:function(){var t=y.get(this);if("boolean"!=typeof t)throw new TypeError("Expected 'this' to be an 'AbortSignal' object, but got "+(null===this?"null":typeof this));return t}}]),p})(u.EventTarget);u.defineEventAttribute(p.prototype,"abort");var y=new WeakMap;Object.defineProperties(p.prototype,{aborted:{enumerable:!0}}),"function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag")&&Object.defineProperty(p.prototype,"function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag",{configurable:!0,value:"AbortSignal"});var f=(function(){function n(){var o;t(this,n),c.set(this,(o=Object.create(p.prototype),u.EventTarget.call(o),y.set(o,!1),o))}return o(n,[{key:"abort",value:function(){var t;t=s(this),!1===y.get(t)&&(y.set(t,!0),t.dispatchEvent({type:"abort"}))}},{key:"signal",get:function(){return s(this)}}]),n})(),c=new WeakMap;function s(t){var o=c.get(t);if(null==o)throw new TypeError("Expected 'this' to be an 'AbortController' object, but got "+(null===t?"null":typeof t));return o}Object.defineProperties(f.prototype,{signal:{enumerable:!0},abort:{enumerable:!0}}),"function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag")&&Object.defineProperty(f.prototype,"function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag",{configurable:!0,value:"AbortController"}),e.AbortController=f,e.AbortSignal=p,e.default=f,m.exports=f,m.exports.AbortController=m.exports.default=f,m.exports.AbortSignal=p},139,[4,5,6,9,10,140]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var t=new WeakMap,n=new WeakMap;function o(n){var o=t.get(n);return console.assert(null!=o,"'this' is expected an Event object, but got",n),o}function l(t){null==t.passiveListener?t.event.cancelable&&(t.canceled=!0,"function"==typeof t.event.preventDefault&&t.event.preventDefault()):"undefined"!=typeof console&&"function"==typeof console.error&&console.error("Unable to preventDefault inside passive event listener invocation.",t.passiveListener)}function u(n,o){t.set(this,{eventTarget:n,event:o,eventPhase:2,currentTarget:n,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:o.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});for(var l=Object.keys(o),u=0;u<l.length;++u){var p=l[u];p in this||Object.defineProperty(this,p,s(p))}}function s(t){return{get:function(){return o(this).event[t]},set:function(n){o(this).event[t]=n},configurable:!0,enumerable:!0}}function p(t){return{value:function(){var n=o(this).event;return n[t].apply(n,arguments)},configurable:!0,enumerable:!0}}function c(t,n){var o=Object.keys(n);if(0===o.length)return t;function l(n,o){t.call(this,n,o)}l.prototype=Object.create(t.prototype,{constructor:{value:l,configurable:!0,writable:!0}});for(var u=0;u<o.length;++u){var c=o[u];if(!(c in t.prototype)){var f="function"==typeof Object.getOwnPropertyDescriptor(n,c).value;Object.defineProperty(l.prototype,c,f?p(c):s(c))}}return l}function f(t){if(null==t||t===Object.prototype)return u;var o=n.get(t);return null==o&&(o=c(f(Object.getPrototypeOf(t)),t),n.set(t,o)),o}function v(t,n){return new(f(Object.getPrototypeOf(n)))(t,n)}function y(t){return o(t).immediateStopped}function b(t,n){o(t).eventPhase=n}function h(t,n){o(t).currentTarget=n}function w(t,n){o(t).passiveListener=n}u.prototype={get type(){return o(this).event.type},get target(){return o(this).eventTarget},get currentTarget(){return o(this).currentTarget},composedPath:function(){var t=o(this).currentTarget;return null==t?[]:[t]},get NONE(){return 0},get CAPTURING_PHASE(){return 1},get AT_TARGET(){return 2},get BUBBLING_PHASE(){return 3},get eventPhase(){return o(this).eventPhase},stopPropagation:function(){var t=o(this);t.stopped=!0,"function"==typeof t.event.stopPropagation&&t.event.stopPropagation()},stopImmediatePropagation:function(){var t=o(this);t.stopped=!0,t.immediateStopped=!0,"function"==typeof t.event.stopImmediatePropagation&&t.event.stopImmediatePropagation()},get bubbles(){return Boolean(o(this).event.bubbles)},get cancelable(){return Boolean(o(this).event.cancelable)},preventDefault:function(){l(o(this))},get defaultPrevented(){return o(this).canceled},get composed(){return Boolean(o(this).event.composed)},get timeStamp(){return o(this).timeStamp},get srcElement(){return o(this).eventTarget},get cancelBubble(){return o(this).stopped},set cancelBubble(t){if(t){var n=o(this);n.stopped=!0,"boolean"==typeof n.event.cancelBubble&&(n.event.cancelBubble=!0)}},get returnValue(){return!o(this).canceled},set returnValue(t){t||l(o(this))},initEvent:function(){}},Object.defineProperty(u.prototype,"constructor",{value:u,configurable:!0,writable:!0}),"undefined"!=typeof window&&void 0!==window.Event&&(Object.setPrototypeOf(u.prototype,window.Event.prototype),n.set(window.Event.prototype,u));var T=new WeakMap,P=3;function x(t){return null!==t&&"object"==typeof t}function E(t){var n=T.get(t);if(null==n)throw new TypeError("'this' is expected an EventTarget object, but got another value.");return n}function O(t){return{get:function(){for(var n=E(this).get(t);null!=n;){if(n.listenerType===P)return n.listener;n=n.next}return null},set:function(n){"function"==typeof n||x(n)||(n=null);for(var o=E(this),l=null,u=o.get(t);null!=u;)u.listenerType===P?null!==l?l.next=u.next:null!==u.next?o.set(t,u.next):o.delete(t):l=u,u=u.next;if(null!==n){var s={listener:n,listenerType:P,passive:!1,once:!1,next:null};null===l?o.set(t,s):l.next=s}},configurable:!0,enumerable:!0}}function j(t,n){Object.defineProperty(t,"on"+n,O(n))}
__d(function(g,r,i,a,m,e,d){'use strict';g.alert||(g.alert=function(t){r(d[0]).alert('Alert',''+t)})},141,[142]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),c=(function(){function t(){(0,n.default)(this,t)}return(0,o.default)(t,null,[{key:"alert",value:function(n,o,u,c){if('ios'===l.default.OS)t.prompt(n,o,u,'default');else if('android'===l.default.OS){if(!s.default)return;var f=s.default.getConstants(),p={title:n||'',message:o||'',cancelable:!1};c&&c.cancelable&&(p.cancelable=c.cancelable);var v=u?u.slice(0,3):[{text:"OK"}],y=v.pop(),b=v.pop(),h=v.pop();h&&(p.buttonNeutral=h.text||''),b&&(p.buttonNegative=b.text||''),y&&(p.buttonPositive=y.text||"OK");s.default.showAlert(p,function(t){return console.warn(t)},function(t,n){t===f.buttonClicked?n===f.buttonNeutral?h.onPress&&h.onPress():n===f.buttonNegative?b.onPress&&b.onPress():n===f.buttonPositive&&y.onPress&&y.onPress():t===f.dismissed&&c&&c.onDismiss&&c.onDismiss()})}}},{key:"prompt",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:'plain-text',c=arguments.length>4?arguments[4]:void 0,f=arguments.length>5?arguments[5]:void 0;if('ios'===l.default.OS){if('function'==typeof s){console.warn("You passed a callback function as the \"type\" argument to Alert.prompt(). React Native is assuming you want to use the deprecated Alert.prompt(title, defaultValue, buttons, callback) signature. The current signature is Alert.prompt(title, message, callbackOrButtons, type, defaultValue, keyboardType) and the old syntax will be removed in a future version.");var p=s;return void u.default.alertWithArgs({title:t||'',type:'plain-text',defaultValue:n||''},function(t,n){p(n)})}var v,y,b=[],h=[];'function'==typeof o?b=[o]:Array.isArray(o)&&o.forEach(function(t,n){if(b[n]=t.onPress,'cancel'===t.style?v=String(n):'destructive'===t.style&&(y=String(n)),t.text||n<(o||[]).length-1){var l={};l[n]=t.text||'',h.push(l)}}),u.default.alertWithArgs({title:t||'',message:n||void 0,buttons:h,type:s||void 0,defaultValue:c,cancelButtonKey:v,destructiveButtonKey:y,keyboardType:f},function(t,n){var o=b[t];o&&o(n)})}}}]),t})();m.exports=c},142,[3,4,5,57,143,144]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).get('DialogManagerAndroid');e.default=o},143,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1]));m.exports={alertWithArgs:function(l,u){null!=t.default&&t.default.alertWithArgs(l,u)}}},144,[3,145]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('AlertManager');e.default=u},145,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).polyfillObjectProperty,o=g.navigator;void 0===o&&(g.navigator=o={}),t(o,'product',function(){return'ReactNative'})},146,[107]);
__d(function(g,r,i,a,m,e,d){'use strict';if(!g.RN$Bridgeless){var l=r(d[0]);l.registerLazyCallableModule('Systrace',function(){return r(d[1])}),l.registerLazyCallableModule('JSTimers',function(){return r(d[2])}),l.registerLazyCallableModule('HeapCapture',function(){return r(d[3])}),l.registerLazyCallableModule('SamplingProfiler',function(){return r(d[4])}),l.registerLazyCallableModule('RCTLog',function(){return r(d[5])}),l.registerLazyCallableModule('RCTDeviceEventEmitter',function(){return r(d[6])}),l.registerLazyCallableModule('RCTNativeAppEventEmitter',function(){return r(d[7])}),l.registerLazyCallableModule('GlobalPerformanceLogger',function(){return r(d[8])}),l.registerLazyCallableModule('JSDevSupportModule',function(){return r(d[9])}),l.registerCallableModule('HMRClient',r(d[10]))}},147,[29,36,111,148,150,152,45,153,154,157,159]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),p={captureHeap:function(p){var u=null;try{g.nativeCaptureHeap(p),console.log('HeapCapture.captureHeap succeeded: '+p)}catch(t){console.log('HeapCapture.captureHeap error: '+t.toString()),u=t.toString()}t.default&&t.default.captureComplete(p,u)}};m.exports=p},148,[3,149]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('HeapCapture');e.default=u},149,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var o={poke:function(o){var l=null,n=null;try{null===(n=g.pokeSamplingProfiler())?console.log('The JSC Sampling Profiler has started'):console.log('The JSC Sampling Profiler has stopped')}catch(o){console.log('Error occurred when restarting Sampling Profiler: '+o.toString()),l=o.toString()}var t=r(d[0]).default;t&&t.operationComplete(o,n,l)}};m.exports=o},150,[151]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])).get('JSCSamplingProfiler');e.default=l},151,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),n={log:'log',info:'info',warn:'warn',error:'error',fatal:'error'},l=null,t={logIfNoNativeHook:function(o){for(var n=arguments.length,f=new Array(n>1?n-1:0),c=1;c<n;c++)f[c-1]=arguments[c];void 0===g.nativeLoggingHook?t.logToConsole.apply(t,[o].concat(f)):l&&'warn'===o&&l.apply(void 0,f)},logToConsole:function(l){var t,f=n[l];o(f,'Level "'+l+'" not one of '+Object.keys(n).toString());for(var c=arguments.length,v=new Array(c>1?c-1:0),s=1;s<c;s++)v[s-1]=arguments[s];(t=console)[f].apply(t,v)},setWarningHandler:function(o){l=o}};m.exports=t},152,[16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t},153,[45]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])();m.exports=t},154,[155]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=(r(d[1]),g.nativeQPLTimestamp||g.nativePerformanceNow||r(d[2])),n={};m.exports=function(){return{_timespans:{},_extras:{},_points:{},addTimespan:function(t,s,n){this._timespans[t]||(this._timespans[t]={description:n,totalTime:s})},startTimespan:function(o,p){this._timespans[o]||(this._timespans[o]={description:p,startTime:s()},n[o]=t.beginAsyncEvent(o))},stopTimespan:function(o){var p=this._timespans[o];p&&p.startTime&&(p.endTime||(p.endTime=s(),p.totalTime=p.endTime-(p.startTime||0),t.endAsyncEvent(o,n[o]),delete n[o]))},clear:function(){this._timespans={},this._extras={},this._points={}},clearCompleted:function(){for(var t in this._timespans)this._timespans[t].totalTime&&delete this._timespans[t];this._extras={},this._points={}},clearExceptTimespans:function(t){this._timespans=Object.keys(this._timespans).reduce(function(s,n){return-1!==t.indexOf(n)&&(s[n]=this._timespans[n]),s},{}),this._extras={},this._points={}},currentTimestamp:function(){return s()},getTimespans:function(){return this._timespans},hasTimespan:function(t){return!!this._timespans[t]},logTimespans:function(){},addTimespans:function(t,s){for(var n=0,o=t.length;n<o;n+=2){var p=s[n/2];this.addTimespan(p,t[n+1]-t[n],p)}},setExtra:function(t,s){this._extras[t]||(this._extras[t]=s)},getExtras:function(){return this._extras},removeExtra:function(t){var s=this._extras[t];return delete this._extras[t],s},logExtras:function(){},markPoint:function(t,n){var o;this._points[t]||(this._points[t]=null!=(o=n)?o:s())},getPoints:function(){return this._points},logPoints:function(){},logEverything:function(){this.logTimespans(),this.logExtras(),this.logPoints()}}}},155,[36,156,113]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(){var n;return(n=console).log.apply(n,arguments)}},156,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),_=r(d[2]),o={getJSHierarchy:function(o){if(t.default){var n=t.default.getConstants();try{var E=(0,_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.computeComponentStackForErrorReporting)(o);E?t.default.onSuccess(E):t.default.onFailure(n.ERROR_CODE_VIEW_NOT_FOUND,"Component stack doesn't exist for tag "+o)}catch(_){t.default.onFailure(n.ERROR_CODE_EXCEPTION,_.message)}}}};m.exports=o},157,[3,158,92]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('JSDevSupport');e.default=u},158,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n={setup:function(){},enable:function(){console.error("Fast Refresh is disabled in JavaScript bundles built in production mode. Did you forget to run Metro?")},disable:function(){},registerBundle:function(){},log:function(){}};m.exports=n},159,[]);
__d(function(g,r,i,a,m,e,d){'use strict';g.__fetchSegment=function(t,n,c){r(d[0]).default.fetchSegment(t,n,function(t){if(t){var n=new Error(t.message);n.code=t.code,c(n)}c(null)})},g.__getSegment=function(t,n,c){var f=r(d[0]).default;if(!f.getSegment)throw new Error('SegmentFetcher.getSegment must be defined');f.getSegment(t,n,function(t,n){if(t){var f=new Error(t.message);f.code=t.code,c(f)}c(null,n)})}},160,[161]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('SegmentFetcher');e.default=n},161,[2,22]);
__d(function(g,r,i,a,m,e,d){m.exports={get BatchedBridge(){return r(d[0])},get ExceptionsManager(){return r(d[1])},get Platform(){return r(d[2])},get RCTEventEmitter(){return r(d[3])},get ReactNativeViewConfigRegistry(){return r(d[4])},get TextInputState(){return r(d[5])},get UIManager(){return r(d[6])},get deepDiffer(){return r(d[7])},get deepFreezeAndThrowOnMutationInDev(){return r(d[8])},get flattenStyle(){return r(d[9])},get ReactFiberErrorDialog(){return r(d[10])}}},162,[29,99,57,163,164,165,77,166,37,89,167]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n={register:function(n){t.registerCallableModule('RCTEventEmitter',n)}};m.exports=n},163,[29]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n={},s={};e.customBubblingEventTypes=n,e.customDirectEventTypes=s;var o=new Map,u=new Map;function f(t){var o=t.bubblingEventTypes,u=t.directEventTypes;if(null!=o)for(var f in o)null==n[f]&&(n[f]=o[f]);if(null!=u)for(var l in u)null==s[l]&&(s[l]=u[l])}e.register=function(n,s){return t(!o.has(n),'Tried to register two views with the same name %s',n),o.set(n,s),n},e.get=function(n){var s;if(u.has(n))s=u.get(n);else{var l=o.get(n);'function'!=typeof l&&t(!1,'View config not found for name %s.%s',n,'string'==typeof n[0]&&/[a-z]/.test(n[0])?' Make sure to start component names with a capital letter.':''),o.set(n,null),f(s=l()),u.set(n,s)}return t(s,'View config not found for name %s',n),s}},164,[16]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);var n=r(d[1]),u=null,t=new Set;m.exports={currentlyFocusedField:function(){return u},focusTextInput:function(t){u!==t&&null!==t&&(u=t,n.focus(t))},blurTextInput:function(t){u===t&&null!==t&&(u=null,n.blur(t))},registerInput:function(n){t.add(n)},unregisterInput:function(n){t.delete(n)},isTextInput:function(n){return t.has(n)}}},165,[57,77]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function t(n,f){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;if(0===o)return!0;if(n===f)return!1;if('function'==typeof n&&'function'==typeof f)return!1;if('object'!=typeof n||null===n)return n!==f;if('object'!=typeof f||null===f)return!0;if(n.constructor!==f.constructor)return!0;if(Array.isArray(n)){var u=n.length;if(f.length!==u)return!0;for(var c=0;c<u;c++)if(t(n[c],f[c],o-1))return!0}else{for(var l in n)if(t(n[l],f[l],o-1))return!0;for(var v in f)if(void 0===n[v]&&void 0!==f[v])return!0}return!1}},166,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);m.exports={showErrorDialog:function(o){var t,c=o.componentStack,p=o.error;t=p instanceof Error?p:'string'==typeof p?new n.SyntheticError(p):new n.SyntheticError('Unspecified error');try{t.componentStack=c}catch(n){}return(0,n.handleException)(t,!1),!1}}},167,[99]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},168,[169]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var n=void 0,t=void 0,l=void 0,o=void 0,u=void 0;if(e.unstable_now=void 0,e.unstable_forceFrameRate=void 0,"undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,c=null,f=function(){if(null!==s)try{var n=e.unstable_now();s(!0,n),s=null}catch(n){throw setTimeout(f,0),n}};e.unstable_now=function(){return Date.now()},n=function(t){null!==s?setTimeout(n,0,t):(s=t,setTimeout(f,0))},t=function(n,t){c=setTimeout(n,t)},l=function(){clearTimeout(c)},o=function(){return!1},u=e.unstable_forceFrameRate=function(){}}else{var p=window.performance,v=window.Date,b=window.setTimeout,w=window.clearTimeout,y=window.requestAnimationFrame,_=window.cancelAnimationFrame;"undefined"!=typeof console&&("function"!=typeof y&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof _&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),e.unstable_now="object"==typeof p&&"function"==typeof p.now?function(){return p.now()}:function(){return v.now()};var x=!1,h=null,T=-1,k=-1,F=33.33,P=-1,M=-1,C=0,A=!1;o=function(){return e.unstable_now()>=C},u=function(){},e.unstable_forceFrameRate=function(n){0>n||125<n?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<n?(F=Math.floor(1e3/n),A=!0):(F=33.33,A=!1)};var L=function(){if(null!==h){var n=e.unstable_now(),t=0<C-n;try{h(t,n)||(h=null)}catch(n){throw j.postMessage(null),n}}},R=new MessageChannel,j=R.port2;R.port1.onmessage=L;var q=function n(t){if(null===h)M=P=-1,x=!1;else{x=!0,y(function(t){w(T),n(t)});if(T=b(function n(){C=e.unstable_now()+F/2,L(),T=b(n,3*F)},3*F),-1!==P&&.1<t-P){var l=t-P;!A&&-1!==M&&l<F&&M<F&&(8.33>(F=l<M?M:l)&&(F=8.33)),M=l}P=t,C=t+F,j.postMessage(null)}};n=function(n){h=n,x||(x=!0,y(function(n){q(n)}))},t=function e(n,t){k=b(function(){n(e.unstable_now())},t)},l=function(){w(k),k=-1}}var D=null,E=null,I=null,N=3,B=!1,O=!1,U=!1;function W(n,t){var l=n.next;if(l===n)D=null;else{n===D&&(D=l);var o=n.previous;o.next=l,l.previous=o}n.next=n.previous=null,l=n.callback,o=N;var u=I;N=n.priorityLevel,I=n;try{var s=n.expirationTime<=t;switch(N){case 1:var c=l(s);break;case 2:case 3:case 4:c=l(s);break;case 5:c=l(s)}}catch(n){throw n}finally{N=o,I=u}if("function"==typeof c)if(t=n.expirationTime,n.callback=c,null===D)D=n.next=n.previous=n;else{c=null,s=D;do{if(t<=s.expirationTime){c=s;break}s=s.next}while(s!==D);null===c?c=D:c===D&&(D=n),(t=c.previous).next=c.previous=n,n.next=c,n.previous=t}}function Y(n){if(null!==E&&E.startTime<=n)do{var t=E,l=t.next;if(t===l)E=null;else{E=l;var o=t.previous;o.next=l,l.previous=o}t.next=t.previous=null,J(t,t.expirationTime)}while(null!==E&&E.startTime<=n)}function z(l){U=!1,Y(l),O||(null!==D?(O=!0,n(G)):null!==E&&t(z,E.startTime-l))}function G(n,u){O=!1,U&&(U=!1,l()),Y(u),B=!0;try{if(n){if(null!==D)do{W(D,u),Y(u=e.unstable_now())}while(null!==D&&!o())}else for(;null!==D&&D.expirationTime<=u;)W(D,u),Y(u=e.unstable_now());return null!==D||(null!==E&&t(z,E.startTime-u),!1)}finally{B=!1}}function H(n){switch(n){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}function J(n,t){if(null===D)D=n.next=n.previous=n;else{var l=null,o=D;do{if(t<o.expirationTime){l=o;break}o=o.next}while(o!==D);null===l?l=D:l===D&&(D=n),(t=l.previous).next=l.previous=n,n.next=l,n.previous=t}}var K=u;e.unstable_ImmediatePriority=1,e.unstable_UserBlockingPriority=2,e.unstable_NormalPriority=3,e.unstable_IdlePriority=5,e.unstable_LowPriority=4,e.unstable_runWithPriority=function(n,t){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var l=N;N=n;try{return t()}finally{N=l}},e.unstable_next=function(n){switch(N){case 1:case 2:case 3:var t=3;break;default:t=N}var l=N;N=t;try{return n()}finally{N=l}},e.unstable_scheduleCallback=function(o
__d(function(g,r,i,a,m,e,d){'use strict';m.exports={uiViewClassName:'RCTView',bubblingEventTypes:{topSelect:{phasedRegistrationNames:{bubbled:'onSelect',captured:'onSelectCapture'}}},directEventTypes:{topClick:{registrationName:'onClick'},topContentSizeChange:{registrationName:'onContentSizeChange'},topLoadingError:{registrationName:'onLoadingError'},topLoadingFinish:{registrationName:'onLoadingFinish'},topLoadingStart:{registrationName:'onLoadingStart'},topMessage:{registrationName:'onMessage'},topMomentumScrollBegin:{registrationName:'onMomentumScrollBegin'},topMomentumScrollEnd:{registrationName:'onMomentumScrollEnd'},topScroll:{registrationName:'onScroll'},topScrollBeginDrag:{registrationName:'onScrollBeginDrag'},topScrollEndDrag:{registrationName:'onScrollEndDrag'},topSelectionChange:{registrationName:'onSelectionChange'}},validAttributes:{hasTVPreferredFocus:!0,focusable:!0,nativeBackgroundAndroid:!0,nativeForegroundAndroid:!0,nextFocusDown:!0,nextFocusForward:!0,nextFocusLeft:!0,nextFocusRight:!0,nextFocusUp:!0}}},170,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),s=t(r(d[2])),u=r(d[3]),b=r(d[4]);m.exports=function(t,l){var v={uiViewClassName:t,Commands:{},bubblingEventTypes:(0,n.default)({},b.bubblingEventTypes,l.bubblingEventTypes||{}),directEventTypes:(0,n.default)({},b.directEventTypes,l.directEventTypes||{}),validAttributes:(0,n.default)({},b.validAttributes,l.validAttributes||{})};u.register(t,function(){return(0,s.default)(t,v),v})}},171,[3,53,172,164,173]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.lefthandObjectDiff=function t(n,u){var o={};function c(n,f,u){if(typeof n==typeof f||null==n)if('object'!=typeof n)n===f||(o[u]=f);else{var c=t(n,f);Object.keys(c).length>1&&(o[u]=c)}else o[u]=f}for(var l in n)f.includes(l)||(u?n.hasOwnProperty(l)&&c(n[l],u[l],l):o[l]={});return o},e.getConfigWithoutViewProps=function(t,f){if(!t[f])return{};return Object.keys(t[f]).filter(function(t){return!n.default[f][t]}).reduce(function(n,u){return n[u]=t[f][u],n},{})},e.stringifyViewConfig=function(t){return JSON.stringify(t,function(t,n){return'function'==typeof n?"\u0192 "+n.name:n},2)},e.default=void 0;var n=t(r(d[1])),f=(r(d[2]),['transform','hitSlop']);var u=function(t,n){};e.default=u},172,[3,173,176]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t(r(d[1])),s=t(r(d[2])),n={uiViewClassName:'RCTView',baseModuleName:null,Manager:'ViewManager',Commands:{},Constants:{},bubblingEventTypes:(0,o.default)({},s.default.bubblingEventTypes,{topBlur:{phasedRegistrationNames:{bubbled:'onBlur',captured:'onBlurCapture'}},topChange:{phasedRegistrationNames:{bubbled:'onChange',captured:'onChangeCapture'}},topEndEditing:{phasedRegistrationNames:{bubbled:'onEndEditing',captured:'onEndEditingCapture'}},topFocus:{phasedRegistrationNames:{bubbled:'onFocus',captured:'onFocusCapture'}},topKeyPress:{phasedRegistrationNames:{bubbled:'onKeyPress',captured:'onKeyPressCapture'}},topPress:{phasedRegistrationNames:{bubbled:'onPress',captured:'onPressCapture'}},topSubmitEditing:{phasedRegistrationNames:{bubbled:'onSubmitEditing',captured:'onSubmitEditingCapture'}},topTouchCancel:{phasedRegistrationNames:{bubbled:'onTouchCancel',captured:'onTouchCancelCapture'}},topTouchEnd:{phasedRegistrationNames:{bubbled:'onTouchEnd',captured:'onTouchEndCapture'}},topTouchMove:{phasedRegistrationNames:{bubbled:'onTouchMove',captured:'onTouchMoveCapture'}},topTouchStart:{phasedRegistrationNames:{bubbled:'onTouchStart',captured:'onTouchStartCapture'}}}),directEventTypes:(0,o.default)({},s.default.directEventTypes,{topAccessibilityAction:{registrationName:'onAccessibilityAction'},topAccessibilityEscape:{registrationName:'onAccessibilityEscape'},topAccessibilityTap:{registrationName:'onAccessibilityTap'},topLayout:{registrationName:'onLayout'},topMagicTap:{registrationName:'onMagicTap'},onGestureHandlerEvent:{registrationName:'onGestureHandlerEvent'},onGestureHandlerStateChange:{registrationName:'onGestureHandlerStateChange'}}),validAttributes:(0,o.default)({},s.default.validAttributes,{accessibilityActions:!0,accessibilityElementsHidden:!0,accessibilityHint:!0,accessibilityIgnoresInvertColors:!0,accessibilityLabel:!0,accessibilityLiveRegion:!0,accessibilityRole:!0,accessibilityStates:!0,accessibilityState:!0,accessibilityViewIsModal:!0,accessible:!0,alignContent:!0,alignItems:!0,alignSelf:!0,aspectRatio:!0,backfaceVisibility:!0,backgroundColor:{process:r(d[3])},borderBottomColor:{process:r(d[3])},borderBottomEndRadius:!0,borderBottomLeftRadius:!0,borderBottomRightRadius:!0,borderBottomStartRadius:!0,borderBottomWidth:!0,borderColor:{process:r(d[3])},borderEndColor:{process:r(d[3])},borderEndWidth:!0,borderLeftColor:{process:r(d[3])},borderLeftWidth:!0,borderRadius:!0,borderRightColor:{process:r(d[3])},borderRightWidth:!0,borderStartColor:{process:r(d[3])},borderStartWidth:!0,borderStyle:!0,borderTopColor:{process:r(d[3])},borderTopEndRadius:!0,borderTopLeftRadius:!0,borderTopRightRadius:!0,borderTopStartRadius:!0,borderTopWidth:!0,borderWidth:!0,bottom:!0,clickable:!0,collapsable:!0,direction:!0,display:!0,elevation:!0,end:!0,flex:!0,flexBasis:!0,flexDirection:!0,flexGrow:!0,flexShrink:!0,flexWrap:!0,height:!0,hitSlop:{diff:r(d[4])},importantForAccessibility:!0,justifyContent:!0,left:!0,margin:!0,marginBottom:!0,marginEnd:!0,marginHorizontal:!0,marginLeft:!0,marginRight:!0,marginStart:!0,marginTop:!0,marginVertical:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,nativeID:!0,needsOffscreenAlphaCompositing:!0,onAccessibilityAction:!0,onAccessibilityEscape:!0,onAccessibilityTap:!0,onLayout:!0,onMagicTap:!0,opacity:!0,overflow:!0,padding:!0,paddingBottom:!0,paddingEnd:!0,paddingHorizontal:!0,paddingLeft:!0,paddingRight:!0,paddingStart:!0,paddingTop:!0,paddingVertical:!0,pointerEvents:!0,position:!0,removeClippedSubviews:!0,renderToHardwareTextureAndroid:!0,right:!0,rotation:!0,scaleX:!0,scaleY:!0,shadowColor:{process:r(d[3])},shadowOffset:{diff:r(d[5])},shadowOpacity:!0,shadowRadius:!0,shouldRasterizeIOS:!0,start:!0,style:{alignContent:!0,alignItems:!0,alignSelf:!0,aspectRatio:!0,backfaceVisibility:!0,backgroundColor:{process:r(d[3])},borderBottomColor:{process:r(d[3])},borderBottomEndRadius:!0,borderBottomLeftRadius:!0,borderBottomRightRadius:!0,borderBottomStartRadius:!0,borderBottomWidth:!0,borderColor:{process:r(d[3])},borderEndColor:{process:r(d[3])}
__d(function(g,r,i,a,m,e,d){'use strict';var t={top:void 0,left:void 0,right:void 0,bottom:void 0};m.exports=function(o,f){return(o=o||t)!==(f=f||t)&&(o.top!==f.top||o.left!==f.left||o.right!==f.right||o.bottom!==f.bottom)}},174,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(t,n){return!(t===n||t&&n&&t[12]===n[12]&&t[13]===n[13]&&t[14]===n[14]&&t[5]===n[5]&&t[10]===n[10]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]&&t[4]===n[4]&&t[6]===n[6]&&t[7]===n[7]&&t[8]===n[8]&&t[9]===n[9]&&t[11]===n[11]&&t[15]===n[15])}},175,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),s=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),l=r(d[6]),v=r(d[7]),b=r(d[8]),p=r(d[9]),f=r(d[10]),y=r(d[11]),C=r(d[12]);var E=!1;function T(n){var t=o.getConstants();t.ViewManagerNames||t.LazyViewManagersEnabled?n=w(n,o.getDefaultEventTypes()):(n.bubblingEventTypes=w(n.bubblingEventTypes,t.genericBubblingEventTypes),n.directEventTypes=w(n.directEventTypes,t.genericDirectEventTypes))}function w(n,t){if(!t)return n;if(!n)return t;for(var s in t)if(t.hasOwnProperty(s)){var o=t[s];if(n.hasOwnProperty(s)){var u=n[s];'object'==typeof o&&'object'==typeof u&&(o=w(u,o))}n[s]=o}return n}function I(n){switch(n){case'CATransform3D':return l;case'CGPoint':return v;case'CGSize':return y;case'UIEdgeInsets':return u}return null}function N(n){switch(n){case'CGColor':case'UIColor':return b;case'CGColorArray':case'UIColorArray':return p;case'CGImage':case'UIImage':case'RCTImageSource':return f;case'Color':return b;case'ColorArray':return p}return null}m.exports=function(u){var l=o.getViewManagerConfig(u);c(null!=l&&null!=l.NativeProps,'requireNativeComponent: "%s" was not found in the UIManager.',u);for(var v=l.baseModuleName,b=l.bubblingEventTypes,p=l.directEventTypes,f=l.NativeProps;v;){var y=o.getViewManagerConfig(v);y?(b=t({},y.bubblingEventTypes,b),p=t({},y.directEventTypes,p),f=t({},y.NativeProps,f),v=y.baseModuleName):(C(!1,'Base module "%s" does not exist',v),v=null)}var w={};for(var M in f){var P=f[M],h=I(P),A=N(P);w[M]=null==h&&null==A||{diff:h,process:A}}return w.style=s,n(l,{uiViewClassName:u,validAttributes:w,bubblingEventTypes:b,directEventTypes:p}),E||(T(l),E=!0),l}},176,[24,53,66,77,174,16,175,177,84,178,179,87,18]);
__d(function(g,r,i,a,m,e,d){'use strict';var t={x:void 0,y:void 0};m.exports=function(n,o){return(n=n||t)!==(o=o||t)&&(n.x!==o.x||n.y!==o.y)}},177,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=function(t){return null==t?null:t.map(n)}},178,[84]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,n,s,u,o=r(d[0]),f=r(d[1]);function c(){if(u)return u;var t=g.nativeExtensions&&g.nativeExtensions.SourceCode;return t||(t=r(d[2]).default),u=t.getConstants().scriptURL}function l(){if(void 0===n){var t=c(),s=t&&t.match(/^https?:\/\/.*?\//);n=s?s[0]:null}return n}function v(t){if(t){if(t.startsWith('assets://'))return null;(t=t.substring(0,t.lastIndexOf('/')+1)).includes('://')||(t='file://'+t)}return t}m.exports=function(n){if('object'==typeof n)return n;var u=o.getAssetByID(n);if(!u)return null;var p=new f(l(),(void 0===s&&(s=v(c())),s),u);return t?t(p):p.defaultAsset()},m.exports.pickScale=f.pickScale,m.exports.setCustomSourceTransformer=function(n){t=n}},179,[180,181,183]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=[];m.exports={registerAsset:function(s){return t.push(s)},getAssetByID:function(s){return t[s-1]}}},180,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),u=(r(d[3]),r(d[4])),o=r(d[5]);function l(t){var s=h.pickScale(t.scales,n.get()),o=1===s?'':'@'+s+'x';return u.getBasePath(t)+'/'+t.name+o+'.'+t.type}function c(t){var s=h.pickScale(t.scales,n.get());return u.getAndroidResourceFolderName(t,s)+'/'+u.getAndroidResourceIdentifier(t)+'.'+t.type}var h=(function(){function h(s,n,u){t(this,h),this.serverUrl=s,this.jsbundleUrl=n,this.asset=u}return s(h,[{key:"isLoadedFromServer",value:function(){return!!this.serverUrl}},{key:"isLoadedFromFileSystem",value:function(){return!(!this.jsbundleUrl||!this.jsbundleUrl.startsWith('file://'))}},{key:"defaultAsset",value:function(){return this.isLoadedFromServer()?this.assetServerURL():this.scaledAssetURLNearBundle()}},{key:"assetServerURL",value:function(){return o(!!this.serverUrl,'need server to load from'),this.fromSource(this.serverUrl+l(this.asset)+"?platform=ios&hash="+this.asset.hash)}},{key:"scaledAssetPath",value:function(){return this.fromSource(l(this.asset))}},{key:"scaledAssetURLNearBundle",value:function(){var t=this.jsbundleUrl||'file://';return this.fromSource(t+l(this.asset))}},{key:"resourceIdentifierWithoutScale",value:function(){return o(!1,'resource identifiers work on Android'),this.fromSource(u.getAndroidResourceIdentifier(this.asset))}},{key:"drawableFolderInBundle",value:function(){var t=this.jsbundleUrl||'file://';return this.fromSource(t+c(this.asset))}},{key:"fromSource",value:function(t){return{__packager_asset:!0,width:this.asset.width,height:this.asset.height,uri:t,scale:h.pickScale(this.asset.scales,n.get())}}}],[{key:"pickScale",value:function(t,s){for(var n=0;n<t.length;n++)if(t[n]>=s)return t[n];return t[t.length-1]||1}}]),h})();m.exports=h},181,[4,5,63,57,182,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t={.75:'ldpi',1:'mdpi',1.5:'hdpi',2:'xhdpi',3:'xxhdpi',4:'xxxhdpi'};function n(n){if(n.toString()in t)return t[n.toString()];throw new Error('no such scale '+n.toString())}var o=new Set(['gif','jpeg','jpg','png','svg','webp','xml']);function s(t){var n=t.httpServerLocation;return'/'===n[0]&&(n=n.substr(1)),n}m.exports={getAndroidAssetSuffix:n,getAndroidResourceFolderName:function(s,u){if(!o.has(s.type))return'raw';var c=n(u);if(!c)throw new Error("Don't know which android drawable suffix to use for scale: "+u+'\nAsset: '+JSON.stringify(s,null,'\t')+'\nPossible scales are:'+JSON.stringify(t,null,'\t'));return'drawable-'+c},getAndroidResourceIdentifier:function(t){return(s(t)+'/'+t.name).toLowerCase().replace(/\//g,'_').replace(/([^a-z0-9_])/g,'').replace(/^assets_/,'')},getBasePath:s}},182,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).getEnforcing('SourceCode');e.default=o},183,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);m.exports=function(u){return n(u,function(){return t(u)})}},184,[185,176]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]).ReactNativeViewConfigRegistry.register;m.exports=function(n,s){return t(n,s)}},185,[162]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,t(r(d[1])).default)('ActivityIndicatorView',{paperComponentName:'RCTActivityIndicatorView'});e.default=o},186,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[1])),t=r(d[2]);var p=function(n,p){var f=p&&p.paperComponentName?p.paperComponentName:n;if(null!=p&&null!=p.paperComponentNameDeprecated)if(t.UIManager.getViewManagerConfig(n))f=n;else{if(null==p.paperComponentNameDeprecated||!t.UIManager.getViewManagerConfig(p.paperComponentNameDeprecated))throw new Error("Failed to find native component for either "+n+" or "+(p.paperComponentNameDeprecated||'(unknown)'));f=p.paperComponentNameDeprecated}return(0,o.default)(f)};e.default=p},187,[3,184,15]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),u=r(d[4]),s=r(d[5]),f=r(d[6]),c=r(d[7]),h=r(d[8]),p=r(d[9]),v=r(d[10]),y=r(d[11]),b=r(d[12]),k=r(d[13]);function S(t,n){if(null==t||null==n)return!0;if(t.length!==n.length)return!0;for(var o=0;o<t.length;o++)if(t[o]!==n[o])return!0;return!1}var w=b(v.UIView,{}),x={transform:{diff:S},opacity:!0},C=b(x,{clipping:{diff:S}}),T=b(x,{fill:{diff:S},stroke:{diff:S},strokeWidth:!0,strokeCap:!0,strokeJoin:!0,strokeDash:{diff:S}}),_=b(T,{d:{diff:S}}),A=b(T,{alignment:!0,frame:{diff:function(t,n){if(t===n)return!1;if(t.font!==n.font){if(null===t.font)return!0;if(null===n.font)return!0;if(t.font.fontFamily!==n.font.fontFamily||t.font.fontSize!==n.font.fontSize||t.font.fontWeight!==n.font.fontWeight||t.font.fontStyle!==n.font.fontStyle)return!0}return S(t.lines,n.lines)}},path:{diff:S}}),R=y('ARTSurfaceView',function(){return{validAttributes:w,uiViewClassName:'ARTSurfaceView'}}),W=y('ARTGroup',function(){return{validAttributes:C,uiViewClassName:'ARTGroup'}}),J=y('ARTShape',function(){return{validAttributes:_,uiViewClassName:'ARTShape'}}),V=y('ARTText',function(){return{validAttributes:A,uiViewClassName:'ARTText'}});function G(t){return t?'string'==typeof t?t:t.length?t.join('\n'):'':''}var I=(function(s){function f(){return t(this,f),o(this,l(f).apply(this,arguments))}return u(f,s),n(f,[{key:"getChildContext",value:function(){return{isInSurface:!0}}},{key:"render",value:function(){var t=N(this.props.height,0),n=N(this.props.width,0);return h.createElement(R,{style:[this.props.style,{height:t,width:n}]},this.props.children)}}]),f})(h.Component);function N(t,n){return null==t?n:+t}I.childContextTypes={isInSurface:p.bool};var z=new c;function D(t){var n=null!=t.scaleX?t.scaleX:null!=t.scale?t.scale:1,o=null!=t.scaleY?t.scaleY:null!=t.scale?t.scale:1;return z.transformTo(1,0,0,1,0,0).move(t.x||0,t.y||0).rotate(t.rotation||0,t.originX,t.originY).scale(n,o,t.originX,t.originY),null!=t.transform&&z.transform(t.transform),[z.xx,z.yx,z.xy,z.yy,z.x,z.y]}function E(t){return!1===t.visible?0:null==t.opacity?1:+t.opacity}var F=(function(s){function f(){return t(this,f),o(this,l(f).apply(this,arguments))}return u(f,s),n(f,[{key:"render",value:function(){var t=this.props;return k(this.context.isInSurface,'ART: <Group /> must be a child of a <Surface />'),h.createElement(W,{opacity:E(t),transform:D(t)},this.props.children)}}]),f})(h.Component);F.contextTypes={isInSurface:p.bool.isRequired};var M=(function(s){function f(){return t(this,f),o(this,l(f).apply(this,arguments))}return u(f,s),n(f,[{key:"render",value:function(){var t=this.props,n=[N(t.x,0),N(t.y,0),N(t.width,0),N(t.height,0)],o=b(t);return delete o.x,delete o.y,h.createElement(W,{clipping:n,opacity:E(t),transform:D(o)},this.props.children)}}]),f})(h.Component),P=0,X=1,Y=2,O=3;function q(t,n,o){var l=new s(t);n[o+0]=l.red/255,n[o+1]=l.green/255,n[o+2]=l.blue/255,n[o+3]=l.alpha}function j(t,n,o){var l=0;if('length'in t)for(;l<t.length;)q(t[l],n,o+4*l),l++;else for(var u in t)q(t[u],n,o+4*l),l++;return o+4*l}function L(t,n,o,l,u){var s,f=0;if('length'in t)for(;f<t.length;)s=f/(t.length-1)*l,n[o+f]=u?1-s:s,f++;else for(var c in t)s=+c*l,n[o+f]=u?1-s:s,f++;return o+f}function U(t,n,o){L(t,n,j(t,n,o),1,!1)}function $(t,n,o){var l=j(t,n,o);L(t,n,l=L(t,n,l=j(t,n,l),.5,!1),.5,!0)}function B(t,n){var o=t[0],l=+n.width,u=+n.height;o===X?(t[1]*=l,t[2]*=u,t[3]*=l,t[4]*=u):o===Y&&(t[1]*=l,t[2]*=u,t[3]*=l,t[4]*=u,t[5]*=l,t[6]*=u)}function H(t,n){if(null==t)return null;if(t._brush)return t._bb&&(B(t._brush,n),t._bb=!1),t._brush;var o=new s(t);return[P,o.red/255,o.green/255,o.blue/255,o.alpha]}function K(t){if(null==t)return null;var n=new s(t);return[n.red/255,n.green/255,n.blue/255,n.alpha]}function Q(t){switch(t){case'butt':return 0;case'square':return 2;default:return 1}}function Z(t){switch(t){case'miter':return 0;case'bevel':return 2;default:return 1}}var tt=(function(s){function c(){return t(this,c),o(this,l(c).apply(this,arguments))}return u(c,s),n(c,[{key:"render",value:function(){var t=this.props,n=t.d||G(t.child
__d(function(g,r,i,a,m,e,d){var t={maroon:'#800000',red:'#ff0000',orange:'#ffA500',yellow:'#ffff00',olive:'#808000',purple:'#800080',fuchsia:"#ff00ff",white:'#ffffff',lime:'#00ff00',green:'#008000',navy:'#000080',blue:'#0000ff',aqua:'#00ffff',teal:'#008080',black:'#000000',silver:'#c0c0c0',gray:'#808080'},n=function(t,n){for(var h=[],u=0,s=t.length;u<s;u++)h[u]=n(t[u],u);return h},h=function n(h,u){if(h.isColor)this.red=h.red,this.green=h.green,this.blue=h.blue,this.alpha=h.alpha;else{var s=t[h];switch(s&&(h=s,u='hex'),typeof h){case'string':u||(u=(u=h.match(/^rgb|^hsb|^hsl/))?u[0]:'hex');break;case'object':u=u||'rgb',h=h.toString();break;case'number':u='hex',h=h.toString(16)}h=n['parse'+u.toUpperCase()](h),this.red=h[0],this.green=h[1],this.blue=h[2],this.alpha=h[3]}this.isColor=!0},u=function(t,n,h){return Math.min(h,Math.max(n,t))},s=/([-.\d]+\%?)\s*,\s*([-.\d]+\%?)\s*,\s*([-.\d]+\%?)\s*,?\s*([-.\d]*\%?)/,o=/^#?([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{0,2})$/i;h.parseRGB=function(t){return n(t.match(s).slice(1),function(t,n){return t&&(t=parseFloat(t)*('%'==t[t.length-1]?2.55:1)),n<3?Math.round((t%=256)<0?t+256:t):u(''===t?1:Number(t),0,1)})},h.parseHEX=function(t){return 1==t.length&&(t=t+t+t),n(t.match(o).slice(1),function(t,n){return 3==n?t?parseInt(t,16)/255:1:parseInt(1==t.length?t+t:t,16)})},h.parseHSB=function(t){var h=n(t.match(s).slice(1),function(t,n){return t&&(t=parseFloat(t)),0===n?Math.round((t%=360)<0?t+360:t):n<3?u(Math.round(t),0,100):u(''===t?1:Number(t),0,1)}),o=h[3],f=Math.round(h[2]/100*255);if(0==h[1])return[f,f,f,o];var l=h[0],c=l%60,b=Math.round(h[2]*(100-h[1])/1e4*255),p=Math.round(h[2]*(6e3-h[1]*c)/6e5*255),M=Math.round(h[2]*(6e3-h[1]*(60-c))/6e5*255);switch(Math.floor(l/60)){case 0:return[f,M,b,o];case 1:return[p,f,b,o];case 2:return[b,f,M,o];case 3:return[b,p,f,o];case 4:return[M,b,f,o];default:return[f,b,p,o]}},h.parseHSL=function(t){var h=n(t.match(s).slice(1),function(t,n){return t&&(t=parseFloat(t)),0===n?Math.round((t%=360)<0?t+360:t):n<3?u(Math.round(t),0,100):u(''===t?1:Number(t),0,1)}),o=h[0]/60,f=h[1]/100,l=h[2]/100,c=h[3],b=(1-Math.abs(2*l-1))*f,p=b*(1-Math.abs(o%2-1)),M=l-b/2,v=Math.round(255*(b+M)),x=Math.round(255*(p+M)),w=Math.round(255*M);switch(Math.floor(o)){case 0:return[v,x,w,c];case 1:return[x,v,w,c];case 2:return[w,v,x,c];case 3:return[w,x,v,c];case 4:return[x,w,v,c];default:return[v,w,x,c]}};var f=function(t,n){return 1!=n[3]?t+='a':n.pop(),t+'('+n.join(', ')+')'};(h.prototype={toHSB:function(t){var n=this.red,h=this.green,u=this.blue,s=this.alpha,o=Math.max(n,h,u),l=o-Math.min(n,h,u),c=0,b=0!=l?l/o:0,p=o/255;if(b){var M=(o-n)/l,v=(o-h)/l,x=(o-u)/l;c=n==o?x-v:h==o?2+M-x:4+v-M,(c/=6)<0&&c++}var w=[Math.round(360*c),Math.round(100*b),Math.round(100*p),s];return t?w:f('hsb',w)},toHSL:function(t){var n=this.red,h=this.green,u=this.blue,s=this.alpha,o=Math.max(n,h,u),l=Math.min(n,h,u),c=o-l,b=0,p=0!=c?c/(255-Math.abs(o+l-255)):0,M=(o+l)/512;if(p){var v=(o-n)/c,x=(o-h)/c,w=(o-u)/c;b=n==o?w-x:h==o?2+v-w:4+x-v,(b/=6)<0&&b++}var S=[Math.round(360*b),Math.round(100*p),Math.round(100*M),s];return t?S:f('hsl',S)},toHEX:function(t){var h=this.alpha,u=1==(h=Math.round(255*h).toString(16)).length?h+h:h,s=n([this.red,this.green,this.blue],function(t){return 1==(t=t.toString(16)).length?'0'+t:t});return t?s.concat(u):'#'+s.join('')+('ff'==u?'':u)},toRGB:function(t){var n=[this.red,this.green,this.blue,this.alpha];return t?n:f('rgb',n)}}).toString=h.prototype.toRGB,h.hex=function(t){return new h(t,'hex')},null==this.hex&&(this.hex=h.hex),h.hsb=function(t,n,u,s){return new h([t||0,n||0,u||0,null==s?1:s],'hsb')},null==this.hsb&&(this.hsb=h.hsb),h.hsl=function(t,n,u,s){return new h([t||0,n||0,u||0,null==s?1:s],'hsl')},null==this.hsl&&(this.hsl=h.hsl),h.rgb=function(t,n,u,s){return new h([t||0,n||0,u||0,null==s?1:s],'rgb')},null==this.rgb&&(this.rgb=h.rgb),h.detach=function(t){return t=new h(t),[h.rgb(t.red,t.green,t.blue).toString(),t.alpha]},m.exports=h},189,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),h=t(n,{initialize:function(t){this.reset(),t instanceof h?this.path=t.path.slice(0):t&&(t.applyToPath?t.applyToPath(this):this.push(t))},onReset:function(){this.path=[]},onMove:function(t,n,h,o){this.path.push(0,h,o)},onLine:function(t,n,h,o){this.path.push(2,h,o)},onBezierCurve:function(t,n,h,o,s,p,u,c){this.path.push(3,h,o,s,p,u,c)},_arcToBezier:n.prototype.onArc,onArc:function(t,n,h,o,s,p,u,c,f,l,z,T){if(u!==c||T)return this._arcToBezier(t,n,h,o,s,p,u,c,f,l,z,T);this.path.push(4,s,p,u,f,l,z?0:1)},onClose:function(){this.path.push(1)},toJSON:function(){return this.path}});m.exports=h},190,[191,192]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t){for(var n={},o=0,c=arguments.length;o<c;o++){var u=arguments[o];for(var f in'function'==typeof u&&(u=u.prototype),u)n[f]=u[f]}return n.initialize||(n.initialize=function(){}),n.constructor=function(t,o,c,u,f,p,l,s){return new n.initialize(t,o,c,u,f,p,l,s)},n.constructor.prototype=n.initialize.prototype=n,n.constructor}},191,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=t({initialize:function(t){this.reset().push(t)},push:function(){var t=Array.prototype.join.call(arguments,' ').match(/[a-df-z]|[\-+]?(?:[\d\.]e[\-+]?|[^\s\-+,a-z])+/gi);if(!t)return this;for(var n,s=t[0],h=1;s;){switch(s){case'm':this.move(t[h++],t[h++]);break;case'l':this.line(t[h++],t[h++]);break;case'c':this.curve(t[h++],t[h++],t[h++],t[h++],t[h++],t[h++]);break;case's':this.curve(t[h++],t[h++],null,null,t[h++],t[h++]);break;case'q':this.curve(t[h++],t[h++],t[h++],t[h++]);break;case't':this.curve(t[h++],t[h++]);break;case'a':this.arc(t[h+5],t[h+6],t[h],t[h+1],t[h+3],!+t[h+4],t[h+2]),h+=7;break;case'h':this.line(t[h++],0);break;case'v':this.line(0,t[h++]);break;case'M':this.moveTo(t[h++],t[h++]);break;case'L':this.lineTo(t[h++],t[h++]);break;case'C':this.curveTo(t[h++],t[h++],t[h++],t[h++],t[h++],t[h++]);break;case'S':this.curveTo(t[h++],t[h++],null,null,t[h++],t[h++]);break;case'Q':this.curveTo(t[h++],t[h++],t[h++],t[h++]);break;case'T':this.curveTo(t[h++],t[h++]);break;case'A':this.arcTo(t[h+5],t[h+6],t[h],t[h+1],t[h+3],!+t[h+4],t[h+2]),h+=7;break;case'H':this.lineTo(t[h++],this.penY);break;case'V':this.lineTo(this.penX,t[h++]);break;case'Z':case'z':this.close();break;default:s=n,h--;continue}'m'==(n=s)?n='l':'M'==n&&(n='L'),s=t[h++]}return this},reset:function(){return this.penX=this.penY=0,this.penDownX=this.penDownY=null,this._pivotX=this._pivotY=0,this.onReset(),this},move:function(t,n){return this.onMove(this.penX,this.penY,this._pivotX=this.penX+=+t,this._pivotY=this.penY+=+n),this},moveTo:function(t,n){return this.onMove(this.penX,this.penY,this._pivotX=this.penX=+t,this._pivotY=this.penY=+n),this},line:function(t,n){return this.lineTo(this.penX+ +t,this.penY+ +n)},lineTo:function(t,n){return null==this.penDownX&&(this.penDownX=this.penX,this.penDownY=this.penY),this.onLine(this.penX,this.penY,this._pivotX=this.penX=+t,this._pivotY=this.penY=+n),this},curve:function(t,n,s,h,o,u){var p=this.penX,c=this.penY;return this.curveTo(p+ +t,c+ +n,null==s?null:p+ +s,null==h?null:c+ +h,null==o?null:p+ +o,null==u?null:c+ +u)},curveTo:function(t,n,s,h,o,u){var p=this.penX,c=this.penY;return null==s&&(s=+t,h=+n,t=2*p-(this._pivotX||0),n=2*c-(this._pivotY||0)),null==o?(this._pivotX=+t,this._pivotY=+n,s=((o=+s)+2*+t)/3,h=((u=+h)+2*+n)/3,t=(p+2*+t)/3,n=(c+2*+n)/3):(this._pivotX=+s,this._pivotY=+h),null==this.penDownX&&(this.penDownX=p,this.penDownY=c),this.onBezierCurve(p,c,+t,+n,+s,+h,this.penX=+o,this.penY=+u),this},arc:function(t,n,s,h,o,u,p){return this.arcTo(this.penX+ +t,this.penY+ +n,s,h,o,u,p)},arcTo:function(t,n,s,h,o,u,p){if(h=Math.abs(+h||+s||+n-this.penY),!(s=Math.abs(+s||+t-this.penX))||!h||t==this.penX&&n==this.penY)return this.lineTo(t,n);var c=this.penX,l=this.penY,v=!+u,X=!!+o,Y=p?p*Math.PI/180:0,f=Math.cos(Y),M=Math.sin(Y),b=f*(t-=c)/2+M*(n-=l)/2,T=-M*t/2+f*n/2,k=s*s*h*h,w=h*h*b*b,_=s*s*T*T,D=k-_-w;if(D<0)s*=D=Math.sqrt(1-D/k),h*=D,b=t/2,T=n/2;else{D=Math.sqrt(D/(_+w)),X==v&&(D=-D);var z=-D*T*s/h,C=D*b*h/s;b=f*z-M*C+t/2,T=M*z+f*C+n/2}var B=f/s,A=M/s,L=-M/h,I=f/h,P=Math.atan2(L*-b+I*-T,B*-b+A*-T),N=Math.atan2(L*(t-b)+I*(n-T),B*(t-b)+A*(n-T));return b+=c,T+=l,t+=c,n+=l,null==this.penDownX&&(this.penDownX=this.penX,this.penDownY=this.penY),this.onArc(c,l,this._pivotX=this.penX=t,this._pivotY=this.penY=n,b,T,s,h,P,N,!v,p),this},counterArc:function(t,n,s,h,o){return this.arc(t,n,s,h,o,!0)},counterArcTo:function(t,n,s,h,o){return this.arcTo(t,n,s,h,o,!0)},close:function(){return null!=this.penDownX&&(this.onClose(this.penX,this.penY,this.penX=this.penDownX,this.penY=this.penDownY),this.penDownX=null),this},onReset:function(){},onMove:function(t,n,s,h){},onLine:function(t,n,s,h){this.onBezierCurve(t,n,t,n,s,h,s,h)},onBezierCurve:function(t,n,s,h,o,u,p,c){var l,v,X,Y,f,M=p-t,b=c-n,T=M*M+b*b;if((f=(X=s-t)*M+(Y=h-n)*b)>T?(X-=M,Y-=b):f>0&&0!=T&&(X-=f/T*M,Y-=f/T*b),l=X*X+Y*Y,(f=(X=o-t)*M+(Y=u-n)*b)>T?(X-=M,Y-=b):f>0&&0!=T&&(X-=f/T*M,Y-=f/T*b),v=X*X+Y*Y,l<.01&&v<.01)this.onLine(t,n,p,c);else{if(isNaN(l)||isNaN(v))throw new Error('Bad input');var k=.5*(s+o),w=.5*(h+u),_=
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);function s(t,s,h,x,y,n){return t&&'object'==typeof t&&(s=t.yx,x=t.yy,n=t.y,h=t.xy,y=t.x,t=t.xx),this.xx=null==t?1:t,this.yx=s||0,this.xy=h||0,this.yy=null==x?1:x,this.x=(null==y?this.x:y)||0,this.y=(null==n?this.y:n)||0,this._transform(),this}m.exports=t({initialize:s,_transform:function(){},xx:1,yx:0,x:0,xy:0,yy:1,y:0,transform:function(t,s,h,x,y,n){var o=this;return t&&'object'==typeof t&&(s=t.yx,x=t.yy,n=t.y,h=t.xy,y=t.x,t=t.xx),y||(y=0),n||(n=0),this.transformTo(o.xx*t+o.xy*s,o.yx*t+o.yy*s,o.xx*h+o.xy*x,o.yx*h+o.yy*x,o.xx*y+o.xy*n+o.x,o.yx*y+o.yy*n+o.y)},transformTo:s,translate:function(t,s){return this.transform(1,0,0,1,t,s)},move:function(t,s){return this.x+=t||0,this.y+=s||0,this._transform(),this},scale:function(t,s){return null==s&&(s=t),this.transform(t,0,0,s,0,0)},rotate:function(t,s,h){null!=s&&null!=h||(s=(this.left||0)+(this.width||0)/2,h=(this.top||0)+(this.height||0)/2);var x=t*Math.PI/180,y=Math.sin(x),n=Math.cos(x);this.transform(1,0,0,1,s,h);return this.transformTo(n*this.xx-y*this.yx,y*this.xx+n*this.yx,n*this.xy-y*this.yy,y*this.xy+n*this.yy,this.x,this.y).transform(1,0,0,1,-s,-h)},moveTo:function(t,s){return this.transformTo(this.xx,this.yx,this.xy,this.yy,t,s)},rotateTo:function(t,s,h){var x=this.yx/this.xx>this.yy/this.xy?-1:1;return(this.xx<0?this.xy>=0:this.xy<0)&&(x=-x),this.rotate(t-180*Math.atan2(x*this.yx,x*this.xx)/Math.PI,s,h)},scaleTo:function(t,s){var h=Math.sqrt(this.xx*this.xx+this.yx*this.yx);return this.xx/=h,this.yx/=h,h=Math.sqrt(this.yy*this.yy+this.xy*this.xy),this.yy/=h,this.xy/=h,this.scale(t,s)},resizeTo:function(t,s){var h=this.width,x=this.height;return h&&x?this.scaleTo(t/h,s/x):this},inversePoint:function(t,s){var h=this.xx,x=this.yx,y=this.xy,n=this.yy,o=this.x,u=this.y,f=x*y-h*n;return 0==f?null:{x:(n*(o-t)+y*(s-u))/f,y:(h*(u-s)+x*(t-o))/f}},point:function(t,s){return{x:this.xx*t+this.xy*s+this.x,y:this.yx*t+this.yy*s+this.y}}})},193,[191]);
__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),t={pointerEvents:!0,accessible:!0,accessibilityActions:!0,accessibilityLabel:!0,accessibilityLiveRegion:!0,accessibilityRole:!0,accessibilityStates:!0,accessibilityState:!0,accessibilityHint:!0,importantForAccessibility:!0,nativeID:!0,testID:!0,renderToHardwareTextureAndroid:!0,shouldRasterizeIOS:!0,onLayout:!0,onAccessibilityAction:!0,onAccessibilityTap:!0,onMagicTap:!0,onAccessibilityEscape:!0,collapsable:!0,needsOffscreenAlphaCompositing:!0,style:r(d[1])},c={UIView:t,RCTView:s({},t,{removeClippedSubviews:!0})};m.exports=c},194,[53,66]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);m.exports=function(n,u){var c={};return t(c,n),t(c,u),c}},195,[196]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),c=t.checkMergeObjectArg,n=t.checkMergeIntoObjectArg;m.exports=function(t,o){if(n(t),null!=o)for(var f in c(o),o)Object.prototype.hasOwnProperty.call(o,f)&&(t[f]=o[f])}},196,[197]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=function(t){return'object'!=typeof t||t instanceof Date||null===t},c={MAX_MERGE_DEPTH:36,isTerminal:n,normalizeMergeArg:function(t){return void 0===t||null===t?{}:t},checkMergeArrayArgs:function(n,c){t(Array.isArray(n)&&Array.isArray(c),'Tried to merge arrays, instead got %s and %s.',n,c)},checkMergeObjectArgs:function(t,n){c.checkMergeObjectArg(t),c.checkMergeObjectArg(n)},checkMergeObjectArg:function(c){t(!n(c)&&!Array.isArray(c),'Tried to merge an object, instead got %s.',c)},checkMergeIntoObjectArg:function(c){t(!(n(c)&&'function'!=typeof c||Array.isArray(c)),'Tried to merge into an object, instead got %s.',c)},checkMergeLevel:function(n){t(n<36,"Maximum deep merge depth exceeded. You may be attempting to merge circular structures in an unsupported way.")},checkArrayStrategy:function(n){t(void 0===n||n in c.ArrayStrategies,"You must provide an array strategy to deep merge functions to instruct the deep merge how to resolve merging two arrays.")},ArrayStrategies:{Clobber:'Clobber',Concat:'Concat',IndexByIndex:'IndexByIndex'}};m.exports=c},197,[16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),o=r(d[2]),n=r(d[3]),c=r(d[4]),u=r(d[5]),l=(r(d[6]),r(d[7])),b=r(d[8]),p=r(d[9]),x=(r(d[10]),r(d[11])),F=r(d[12]),h=r(d[13]),f=(function(t){function b(){return s(this,b),n(this,c(b).apply(this,arguments))}return u(b,t),o(b,[{key:"render",value:function(){var t=this.props,s=t.accessibilityLabel,o=t.color,n=t.onPress,c=t.touchSoundDisabled,u=t.title,b=t.hasTVPreferredFocus,f=t.nextFocusDown,y=t.nextFocusForward,v=t.nextFocusLeft,w=t.nextFocusRight,L=t.nextFocusUp,P=t.disabled,S=t.testID,E=[D.button],R=[D.text];o&&R.push({color:o});var T=[];P&&(E.push(D.buttonDisabled),R.push(D.textDisabled),T.push('disabled')),h('string'==typeof u,'The title prop of a Button must be a string');var A=u,I=x;return l.createElement(I,{accessibilityLabel:s,accessibilityRole:"button",accessibilityStates:T,hasTVPreferredFocus:b,nextFocusDown:f,nextFocusForward:y,nextFocusLeft:v,nextFocusRight:w,nextFocusUp:L,testID:S,disabled:P,onPress:n,touchSoundDisabled:c},l.createElement(F,{style:E},l.createElement(p,{style:R,disabled:P},A)))}}]),b})(l.Component),D=b.create({button:{},text:t({textAlign:'center',padding:8},{color:'#007AFF',fontSize:18}),buttonDisabled:{},textDisabled:{color:'#cdcdcd'}});m.exports=f},198,[53,4,5,6,9,10,57,59,62,199,214,215,90,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),u=r(d[5]),p=r(d[6]),c=r(d[7]),h=r(d[8]),f=r(d[9]),R=r(d[10]),H=r(d[11]),v=r(d[12]),T=r(d[13]),b=r(d[14]),S=r(d[15]),y=r(d[16]),w={top:20,left:20,right:20,bottom:30},x={validAttributes:c({},R.UIView,{isHighlighted:!0,numberOfLines:!0,ellipsizeMode:!0,allowFontScaling:!0,maxFontSizeMultiplier:!0,disabled:!0,selectable:!0,selectionColor:!0,adjustsFontSizeToFit:!0,minimumFontScale:!0,textBreakStrategy:!0,onTextLayout:!0,onInlineViewLayout:!0,dataDetectorType:!0}),directEventTypes:{topTextLayout:{registrationName:'onTextLayout'},topInlineViewLayout:{registrationName:'onInlineViewLayout'}},uiViewClassName:'RCTText'},C=(function(h){function R(){var n,o;t(this,R);for(var u=arguments.length,h=new Array(u),f=0;f<u;f++)h[f]=arguments[f];return(o=s(this,(n=l(R)).call.apply(n,[this].concat(h)))).state=c({},v.Mixin.touchableGetInitialState(),{isHighlighted:!1,createResponderHandlers:o._createResponseHandlers.bind(p(p(o))),responseHandlers:null}),o}return u(R,h),o(R,[{key:"render",value:function(){var t=this.props;return P(t)&&(t=c({},t,this.state.responseHandlers,{isHighlighted:this.state.isHighlighted})),null!=t.selectionColor&&(t=c({},t,{selectionColor:y(t.selectionColor)})),f.createElement(H.Consumer,null,function(o){return o?f.createElement(V,n({},t,{ref:t.forwardedRef})):f.createElement(H.Provider,{value:!0},f.createElement(M,n({},t,{ref:t.forwardedRef})))})}},{key:"_createResponseHandlers",value:function(){var n=this;return{onStartShouldSetResponder:function(){var t=n.props.onStartShouldSetResponder,o=null!=t&&t()||P(n.props);return o&&n._attachTouchHandlers(),o},onResponderGrant:function(t,o){S(n.touchableHandleResponderGrant)(t,o),null!=n.props.onResponderGrant&&n.props.onResponderGrant.call(n,t,o)},onResponderMove:function(t){S(n.touchableHandleResponderMove)(t),null!=n.props.onResponderMove&&n.props.onResponderMove.call(n,t)},onResponderRelease:function(t){S(n.touchableHandleResponderRelease)(t),null!=n.props.onResponderRelease&&n.props.onResponderRelease.call(n,t)},onResponderTerminate:function(t){S(n.touchableHandleResponderTerminate)(t),null!=n.props.onResponderTerminate&&n.props.onResponderTerminate.call(n,t)},onResponderTerminationRequest:function(){var t=n.props.onResponderTerminationRequest;return!!S(n.touchableHandleResponderTerminationRequest)()&&(null==t||t())}}}},{key:"_attachTouchHandlers",value:function(){var n=this;if(null==this.touchableGetPressRectOffset){for(var t in v.Mixin)'function'==typeof v.Mixin[t]&&(this[t]=v.Mixin[t].bind(this));this.touchableHandleActivePressIn=function(){!n.props.suppressHighlighting&&P(n.props)&&n.setState({isHighlighted:!0})},this.touchableHandleActivePressOut=function(){!n.props.suppressHighlighting&&P(n.props)&&n.setState({isHighlighted:!1})},this.touchableHandlePress=function(t){null!=n.props.onPress&&n.props.onPress(t)},this.touchableHandleLongPress=function(t){null!=n.props.onLongPress&&n.props.onLongPress(t)},this.touchableGetPressRectOffset=function(){return null==n.props.pressRetentionOffset?w:n.props.pressRetentionOffset}}}}],[{key:"getDerivedStateFromProps",value:function(n,t){return null==t.responseHandlers&&P(n)?{responseHandlers:t.createResponderHandlers()}:null}}]),R})(f.Component);C.defaultProps={accessible:!0,allowFontScaling:!0,ellipsizeMode:'tail'},C.viewConfig=x;var P=function(n){return null!=n.onPress||null!=n.onLongPress||null!=n.onStartShouldSetResponder},M=b(x.uiViewClassName,function(){return x}),V=null==T.getViewManagerConfig('RCTVirtualText')?M:b('RCTVirtualText',function(){return{validAttributes:c({},R.UIView,{isHighlighted:!0,maxFontSizeMultiplier:!0}),uiViewClassName:'RCTVirtualText'}}),L=f.forwardRef(function(t,o){return f.createElement(C,n({},t,{forwardedRef:o}))});L.displayName='Text',L.propTypes=h,m.exports=L},199,[24,4,5,6,9,10,8,53,200,59,194,204,205,77,185,213,84]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),n=r(d[1]),t=r(d[2]),l=r(d[3]),s=t(r(d[4]));m.exports={ellipsizeMode:l.oneOf(['head','middle','tail','clip']),numberOfLines:l.number,textBreakStrategy:l.oneOf(['simple','highQuality','balanced']),onLayout:l.func,onPress:l.func,onLongPress:l.func,pressRetentionOffset:n,selectable:l.bool,selectionColor:o,suppressHighlighting:l.bool,style:s,testID:l.string,nativeID:l.string,allowFontScaling:l.bool,maxFontSizeMultiplier:l.number,accessible:l.bool,adjustsFontSizeToFit:l.bool,minimumFontScale:l.number,disabled:l.bool,dataDetectorType:l.oneOf(['phoneNumber','link','email','none','all'])}},200,[68,201,202,71,82]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t.shape({top:t.number,left:t.number,bottom:t.number,right:t.number});m.exports=n},201,[71]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);m.exports=function(o){var c=n(o);return function(n,o,u,v){var f=n;n[o]&&((f={})[o]=t(n[o]));for(var p=arguments.length,s=new Array(p>4?p-4:0),l=4;l<p;l++)s[l-4]=arguments[l];return c.apply(void 0,[f,o,u,v].concat(s))}}},202,[203,89]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);m.exports=function(o){function l(l,c,s,u,p){if(c[s]){var f=c[s],y=typeof f;'object'!==y&&n(!1,"Invalid "+(p||'(unknown)')+" `"+s+"` of type `"+y+"` supplied to `"+u+"`, expected `object`.");for(var v=t(c[s],o),b=arguments.length,j=new Array(b>5?b-5:0),k=5;k<b;k++)j[k-5]=arguments[k];for(var w in v){var O=o[w];O||n(!1,"Invalid props."+s+" key `"+w+"` supplied to `"+u+"`.\nBad object: "+JSON.stringify(c[s],null,' ')+'\nValid keys: '+JSON.stringify(Object.keys(o),null,' '));var J=O.apply(void 0,[f,w,u,p].concat(j));J&&n(!1,J.message+'\nBad object: '+JSON.stringify(c[s],null,' '))}}else l&&n(!1,"Required object `"+s+"` was not specified in `"+u+"`.")}function c(n,t,o,c){for(var s=arguments.length,u=new Array(s>4?s-4:0),p=4;p<s;p++)u[p-4]=arguments[p];return l.apply(void 0,[!1,n,t,o,c].concat(u))}return c.isRequired=l.bind(null,!0),c}},203,[16,195]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t.createContext(!1)},204,[59]);
__d(function(g,r,i,a,m,e,d){'use strict';var E=r(d[0]),t=r(d[1]),R=r(d[2]),_=r(d[3]),s=r(d[4]),o=(r(d[5]),r(d[6])),S=r(d[7]),n=r(d[8]),l=r(d[9]),N=(r(d[10]),r(d[11])),h=(r(d[12]),function(E){var t=E.touches,R=E.changedTouches,_=t&&t.length>0,s=R&&R.length>0;return!_&&s?R[0]:_?t[0]:E}),T=N({NOT_RESPONDER:null,RESPONDER_INACTIVE_PRESS_IN:null,RESPONDER_INACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_PRESS_IN:null,RESPONDER_ACTIVE_PRESS_OUT:null,RESPONDER_ACTIVE_LONG_PRESS_IN:null,RESPONDER_ACTIVE_LONG_PRESS_OUT:null,ERROR:null}),u={NOT_RESPONDER:!1,RESPONDER_INACTIVE_PRESS_IN:!1,RESPONDER_INACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_PRESS_IN:!1,RESPONDER_ACTIVE_PRESS_OUT:!1,RESPONDER_ACTIVE_LONG_PRESS_IN:!1,RESPONDER_ACTIVE_LONG_PRESS_OUT:!1,ERROR:!1},P=t({},u,{RESPONDER_ACTIVE_PRESS_OUT:!0,RESPONDER_ACTIVE_PRESS_IN:!0}),O=t({},u,{RESPONDER_INACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_PRESS_IN:!0,RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),D=t({},u,{RESPONDER_ACTIVE_LONG_PRESS_IN:!0}),c=N({DELAY:null,RESPONDER_GRANT:null,RESPONDER_RELEASE:null,RESPONDER_TERMINATED:null,ENTER_PRESS_RECT:null,LEAVE_PRESS_RECT:null,LONG_PRESS_DETECTED:null}),A={NOT_RESPONDER:{DELAY:T.ERROR,RESPONDER_GRANT:T.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:T.ERROR,RESPONDER_TERMINATED:T.ERROR,ENTER_PRESS_RECT:T.ERROR,LEAVE_PRESS_RECT:T.ERROR,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_INACTIVE_PRESS_IN:{DELAY:T.RESPONDER_ACTIVE_PRESS_IN,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_INACTIVE_PRESS_OUT:{DELAY:T.RESPONDER_ACTIVE_PRESS_OUT,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_INACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_ACTIVE_PRESS_IN:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_PRESS_OUT:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},RESPONDER_ACTIVE_LONG_PRESS_IN:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:T.RESPONDER_ACTIVE_LONG_PRESS_IN},RESPONDER_ACTIVE_LONG_PRESS_OUT:{DELAY:T.ERROR,RESPONDER_GRANT:T.ERROR,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_IN,LEAVE_PRESS_RECT:T.RESPONDER_ACTIVE_LONG_PRESS_OUT,LONG_PRESS_DETECTED:T.ERROR},error:{DELAY:T.NOT_RESPONDER,RESPONDER_GRANT:T.RESPONDER_INACTIVE_PRESS_IN,RESPONDER_RELEASE:T.NOT_RESPONDER,RESPONDER_TERMINATED:T.NOT_RESPONDER,ENTER_PRESS_RECT:T.NOT_RESPONDER,LEAVE_PRESS_RECT:T.NOT_RESPONDER,LONG_PRESS_DETECTED:T.NOT_RESPONDER}},I={componentDidMount:function(){_.isTV&&(this._tvEventHandler=new n,this._tvEventHandler.enable(this,function(E,t){var R=o.findNodeHandle(E);t.dispatchConfig={},R===t.tag&&('focus'===t.eventType?E.touchableHandleFocus(t):'blur'===t.eventType?E.touchableHandleBlur(t):'select'===t.eventType&&E.touchableHandlePress&&!E.props.disabled&&E.touchableHandlePress(t))}))},componentWillUnmount:function(){this._tvEventHandler&&(this._tvEventHandler.disable(),delete this._tvEventHandler),this.touchableDelayTimeout&&clearTimeout(this.touchableDelayTimeout),this.longPressDelayTimeout&&clearTimeout(this.longPressDelayTimeout),this.pressOutDelayTimeout&&clearTimeout(this.pressOutDelayTimeout)},touchableGetInitialState:function(){return{touchable:{touchState:void 0,responderID:null}}},touchableHandleResponderTerminationRequest:function(){re
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t.twoArgumentPooler;function n(t,o){this.width=t,this.height=o}n.prototype.destructor=function(){this.width=null,this.height=null},n.getPooledFromElement=function(t){return n.getPooled(t.offsetWidth,t.offsetHeight)},t.addPoolingTo(n,o),m.exports=n},206,[207]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=function(t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,t),n}return new this(t)},o=function(n){t(n instanceof this,'Trying to release an instance into a pool of a different type.'),n.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(n)},s=n,l={addPoolingTo:function(t,n){var l=t;return l.instancePool=[],l.getPooled=n||s,l.poolSize||(l.poolSize=10),l.release=o,l},oneArgumentPooler:n,twoArgumentPooler:function(t,n){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,t,n),o}return new this(t,n)},threeArgumentPooler:function(t,n,o){if(this.instancePool.length){var s=this.instancePool.pop();return this.call(s,t,n,o),s}return new this(t,n,o)},fourArgumentPooler:function(t,n,o,s){if(this.instancePool.length){var l=this.instancePool.pop();return this.call(l,t,n,o,s),l}return new this(t,n,o,s)}};m.exports=l},207,[16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t.twoArgumentPooler;function n(t,o){this.left=t,this.top=o}n.prototype.destructor=function(){this.left=null,this.top=null},t.addPoolingTo(n,o),m.exports=n},208,[207]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=(r(d[2]),r(d[3]));function v(){this.__nativeTVNavigationEventListener=null,this.__nativeTVNavigationEventEmitter=null}v.prototype.enable=function(v,o){t.default&&(this.__nativeTVNavigationEventEmitter=new n(t.default),this.__nativeTVNavigationEventListener=this.__nativeTVNavigationEventEmitter.addListener('onHWKeyEvent',function(t){o&&o(v,t)}))},v.prototype.disable=function(){this.__nativeTVNavigationEventListener&&(this.__nativeTVNavigationEventListener.remove(),delete this.__nativeTVNavigationEventListener),this.__nativeTVNavigationEventEmitter&&delete this.__nativeTVNavigationEventEmitter},m.exports=v},209,[3,210,57,125]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('TVNavigationEventEmitter');e.default=u},210,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=function(t){var o,s={};for(o in t instanceof Object&&!Array.isArray(t)||n(!1),t)t.hasOwnProperty(o)&&(s[o]=o);return s}},211,[212]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=function(n){if(void 0===n)throw new Error('invariant(...): Second argument must be a string.')};m.exports=function(o,t){for(var f=arguments.length,s=new Array(f>2?f-2:0),u=2;u<f;u++)s[u-2]=arguments[u];if(n(t),!o){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var v=0;(c=new Error(t.replace(/%s/g,function(){return String(s[v++])}))).name='Invariant Violation'}throw c.framesToPop=1,c}}},212,[]);
__d(function(g,r,i,a,m,e,d){'use strict';function t(t,o){if(null!=t)return t;var n=new Error(void 0!==o?o:'Got unexpected '+t);throw n.framesToPop=1,n}m.exports=t,m.exports.default=t,Object.defineProperty(m.exports,'__esModule',{value:!0})},213,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),u=r(d[4]),l=r(d[5]),s=r(d[6]),f=r(d[7]),p=r(d[8]),h=(function(s){function h(){return t(this,h),o(this,c(h).apply(this,arguments))}return u(h,s),n(h,[{key:"render",value:function(){return l.createElement(p,{style:[b.container,this.props.style]},l.createElement(f,{style:b.info},"TouchableNativeFeedback is not supported on this platform!"))}}]),h})(l.Component);h.SelectableBackground=function(){return{}},h.SelectableBackgroundBorderless=function(){return{}},h.Ripple=function(){return{}},h.canUseNativeForeground=function(){return!1};var b=s.create({container:{height:100,width:300,backgroundColor:'#ffbcbc',borderWidth:1,borderColor:'red',alignItems:'center',justifyContent:'center',margin:10},info:{color:'#333333',margin:20}});m.exports=h},214,[4,5,6,9,10,59,62,199,90]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),o=r(d[2]),n=r(d[3]),p=r(d[4]),c=r(d[5]),l=r(d[6]),u=r(d[7]),h=r(d[8]),y=r(d[9]),b=r(d[10]),f=r(d[11]),P={top:20,left:20,right:20,bottom:30},v=y({displayName:'TouchableOpacity',mixins:[u.Mixin.withoutDefaultFocusAndBlur,n],propTypes:t({},h.propTypes,{activeOpacity:l.number,hasTVPreferredFocus:l.bool,nextFocusDown:l.number,nextFocusForward:l.number,nextFocusLeft:l.number,nextFocusRight:l.number,nextFocusUp:l.number,tvParallaxProperties:l.object}),getDefaultProps:function(){return{activeOpacity:.2}},getInitialState:function(){return t({},this.touchableGetInitialState(),{anim:new s.Value(this._getChildStyleOpacityWithDefault())})},componentDidMount:function(){b(this.props)},UNSAFE_componentWillReceiveProps:function(t){b(t)},componentDidUpdate:function(t,s){this.props.disabled!==t.disabled&&this._opacityInactive(250)},setOpacityTo:function(t,n){s.timing(this.state.anim,{toValue:t,duration:n,easing:o.inOut(o.quad),useNativeDriver:!0}).start()},touchableHandleActivePressIn:function(t){'onResponderGrant'===t.dispatchConfig.registrationName?this._opacityActive(0):this._opacityActive(150),this.props.onPressIn&&this.props.onPressIn(t)},touchableHandleActivePressOut:function(t){this._opacityInactive(250),this.props.onPressOut&&this.props.onPressOut(t)},touchableHandleFocus:function(t){p.isTV&&this._opacityActive(150),this.props.onFocus&&this.props.onFocus(t)},touchableHandleBlur:function(t){p.isTV&&this._opacityInactive(250),this.props.onBlur&&this.props.onBlur(t)},touchableHandlePress:function(t){this.props.onPress&&this.props.onPress(t)},touchableHandleLongPress:function(t){this.props.onLongPress&&this.props.onLongPress(t)},touchableGetPressRectOffset:function(){return this.props.pressRetentionOffset||P},touchableGetHitSlop:function(){return this.props.hitSlop},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn||0},touchableGetLongPressDelayMS:function(){return 0===this.props.delayLongPress?0:this.props.delayLongPress||500},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut},_opacityActive:function(t){this.setOpacityTo(this.props.activeOpacity,t)},_opacityInactive:function(t){this.setOpacityTo(this._getChildStyleOpacityWithDefault(),t)},_getChildStyleOpacityWithDefault:function(){var t=f(this.props.style)||{};return null==t.opacity?1:t.opacity},render:function(){return c.createElement(s.View,{accessible:!1!==this.props.accessible,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityRole:this.props.accessibilityRole,accessibilityStates:this.props.accessibilityStates,accessibilityState:this.props.accessibilityState,accessibilityActions:this.props.accessibilityActions,onAccessibilityAction:this.props.onAccessibilityAction,style:[this.props.style,{opacity:this.state.anim}],nativeID:this.props.nativeID,testID:this.props.testID,onLayout:this.props.onLayout,isTVSelectable:!0,nextFocusDown:this.props.nextFocusDown,nextFocusForward:this.props.nextFocusForward,nextFocusLeft:this.props.nextFocusLeft,nextFocusRight:this.props.nextFocusRight,nextFocusUp:this.props.nextFocusUp,hasTVPreferredFocus:this.props.hasTVPreferredFocus,tvParallaxProperties:this.props.tvParallaxProperties,hitSlop:this.props.hitSlop,focusable:!1!==this.props.focusable&&void 0!==this.props.onPress,onClick:this.touchableHandlePress,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate},this.props.children,u.renderDebugView({color:'cyan',hitSlop:this.props.hitSlop}))}});m.exports=v},215,[53,216,244,280,57,59,71,205,281,282,286,89]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),u=t(r(d[2])),s=r(d[3]),l=r(d[4]),c=u.default.isTesting?s:l;m.exports=(0,n.default)({get FlatList(){return r(d[5])},get Image(){return r(d[6])},get ScrollView(){return r(d[7])},get SectionList(){return r(d[8])},get Text(){return r(d[9])},get View(){return r(d[10])}},c)},216,[3,53,57,217,227,247,268,274,275,278,279]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),u=n.AnimatedEvent,o=n.attachNativeEvent,f=r(d[2]),c=r(d[3]),l=r(d[4]),s=r(d[5]),v=r(d[6]),p=r(d[7]),E=r(d[8]),V={start:function(){},stop:function(){},reset:function(){},_startNativeLoop:function(){},_isUsingNativeDriver:function(){return!1}};m.exports={Value:v,ValueXY:p,Interpolation:c,Node:l,decay:function(t,n){return V},timing:function(n,u){var o=n;return t({},V,{start:function(t){o.setValue(u.toValue),t&&t({finished:!0})}})},spring:function(n,u){var o=n;return t({},V,{start:function(t){o.setValue(u.toValue),t&&t({finished:!0})}})},add:f.add,subtract:f.subtract,divide:f.divide,multiply:f.multiply,modulo:f.modulo,diffClamp:f.diffClamp,delay:function(t){return V},sequence:function(t){return V},parallel:function(t,n){return V},stagger:function(t,n){return V},loop:function(t){(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).iterations;return V},event:function(t,n){return null},createAnimatedComponent:E,attachNativeEvent:o,forkEvent:f.forkEvent,unforkEvent:f.unforkEvent,Event:u,__PropsOnlyForTests:s}},217,[53,218,227,220,221,233,219,238,246]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),v=r(d[3]),o=r(d[4]),c=r(d[5]),_=r(d[3]).shouldUseNativeDriver;function l(t,n,_){var l=[];c(_[0]&&_[0].nativeEvent,'Native driven events only support animated values contained inside `nativeEvent`.'),(function t(n,v){if(n instanceof s)n.__makeNative(),l.push({nativeEventPath:v,animatedValueTag:n.__getNativeTag()});else if('object'==typeof n)for(var o in n)t(n[o],v.concat(o))})(_[0].nativeEvent,[]);var h=o.findNodeHandle(t);return l.forEach(function(t){v.API.addAnimatedEventToView(h,n,t)}),{detach:function(){l.forEach(function(t){v.API.removeAnimatedEventFromView(h,n,t.animatedValueTag)})}}}var h=(function(){function v(n){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,v),this._listeners=[],this._argMapping=n,s.listener&&this.__addListener(s.listener),this._callListeners=this._callListeners.bind(this),this._attachedEvent=null,this.__isNative=_(s)}return n(v,[{key:"__addListener",value:function(t){this._listeners.push(t)}},{key:"__removeListener",value:function(t){this._listeners=this._listeners.filter(function(n){return n!==t})}},{key:"__attach",value:function(t,n){c(this.__isNative,'Only native driven events need to be attached.'),this._attachedEvent=l(t,n,this._argMapping)}},{key:"__detach",value:function(t,n){c(this.__isNative,'Only native driven events need to be detached.'),this._attachedEvent&&this._attachedEvent.detach()}},{key:"__getHandler",value:function(){var t=this;return this.__isNative?this._callListeners:function(){for(var n=arguments.length,v=new Array(n),o=0;o<n;o++)v[o]=arguments[o];var c=function t(n,v,o){if('number'==typeof v&&n instanceof s)n.setValue(v);else if('object'==typeof n)for(var c in n)t(n[c],v[c],c)};t.__isNative||t._argMapping.forEach(function(t,n){c(t,v[n])}),t._callListeners.apply(t,v)}}},{key:"_callListeners",value:function(){for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];this._listeners.forEach(function(t){return t.apply(void 0,n)})}},{key:"_validateMapping",value:function(){}}]),v})();m.exports={AnimatedEvent:h,attachNativeEvent:l}},218,[4,5,219,222,92,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),_=r(d[4]),o=r(d[5]),l=r(d[6]),h=r(d[7]),f=r(d[8]),c=r(d[9]).API;function v(t){var n=new Set;!(function t(s){'function'==typeof s.update?n.add(s):s.__getChildren().forEach(t)})(t),n.forEach(function(t){return t.update()})}var p=(function(p){function k(n){var _;return t(this,k),(_=s(this,u(k).call(this)))._startingValue=_._value=n,_._offset=0,_._animation=null,_}return o(k,h),n(k,[{key:"__detach",value:function(){this.stopAnimation(),_(u(k.prototype),"__detach",this).call(this)}},{key:"__getValue",value:function(){return this._value+this._offset}},{key:"setValue",value:function(t){this._animation&&(this._animation.stop(),this._animation=null),this._updateValue(t,!this.__isNative),this.__isNative&&c.setAnimatedNodeValue(this.__getNativeTag(),t)}},{key:"setOffset",value:function(t){this._offset=t,this.__isNative&&c.setAnimatedNodeOffset(this.__getNativeTag(),t)}},{key:"flattenOffset",value:function(){this._value+=this._offset,this._offset=0,this.__isNative&&c.flattenAnimatedNodeOffset(this.__getNativeTag())}},{key:"extractOffset",value:function(){this._offset+=this._value,this._value=0,this.__isNative&&c.extractAnimatedNodeOffset(this.__getNativeTag())}},{key:"stopAnimation",value:function(t){this.stopTracking(),this._animation&&this._animation.stop(),this._animation=null,t&&t(this.__getValue())}},{key:"resetAnimation",value:function(t){this.stopAnimation(t),this._value=this._startingValue}},{key:"_onAnimatedValueUpdateReceived",value:function(t){this._updateValue(t,!1)}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"animate",value:function(t,n){var s=this,u=null;t.__isInteraction&&(u=f.createInteractionHandle());var _=this._animation;this._animation&&this._animation.stop(),this._animation=t,t.start(this._value,function(t){s._updateValue(t,!0)},function(t){s._animation=null,null!==u&&f.clearInteractionHandle(u),n&&n(t)},_,this)}},{key:"stopTracking",value:function(){this._tracking&&this._tracking.__detach(),this._tracking=null}},{key:"track",value:function(t){this.stopTracking(),this._tracking=t}},{key:"_updateValue",value:function(t,n){this._value=t,n&&v(this),_(u(k.prototype),"__callListeners",this).call(this,this.__getValue())}},{key:"__getNativeConfig",value:function(){return{type:'value',value:this._value,offset:this._offset}}}]),k})();m.exports=p},219,[4,5,6,9,46,10,220,224,225,222]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),p=r(d[4]),l=r(d[5]),h=r(d[6]),f=(r(d[7]),r(d[8])),c=r(d[9]),s=r(d[10]),_=r(d[11]),v=function(t){return t};function y(t){if(t.outputRange&&'string'==typeof t.outputRange[0])return b(t);var n=t.outputRange;w('outputRange',n);var o=t.inputRange;w('inputRange',o),N(o),s(o.length===n.length,'inputRange ('+o.length+') and outputRange ('+n.length+') must have the same length');var u=t.easing||v,p='extend';void 0!==t.extrapolateLeft?p=t.extrapolateLeft:void 0!==t.extrapolate&&(p=t.extrapolate);var l='extend';return void 0!==t.extrapolateRight?l=t.extrapolateRight:void 0!==t.extrapolate&&(l=t.extrapolate),function(t){s('number'==typeof t,'Cannot interpolation an input which is not a number');var h=L(t,o);return R(t,o[h],o[h+1],n[h],n[h+1],u,p,l)}}function R(t,n,o,u,p,l,h,f){var c=t;if(c<n){if('identity'===h)return c;'clamp'===h&&(c=n)}if(c>o){if('identity'===f)return c;'clamp'===f&&(c=o)}return u===p?u:n===o?t<=n?u:p:(n===-1/0?c=-c:o===1/0?c-=n:c=(c-n)/(o-n),c=l(c),u===-1/0?c=-c:p===1/0?c+=u:c=c*(p-u)+u,c)}function x(t){var n=_(t);return null===n?t:"rgba("+((4278190080&(n=n||0))>>>24)+", "+((16711680&n)>>>16)+", "+((65280&n)>>>8)+", "+(255&n)/255+")"}var k=/[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;function b(t){var n=t.outputRange;s(n.length>=2,'Bad output range'),C(n=n.map(x));var o=n[0].match(k).map(function(){return[]});n.forEach(function(t){t.match(k).forEach(function(t,n){o[n].push(+t)})});var u,p=n[0].match(k).map(function(n,u){return y(h({},t,{outputRange:o[u]}))}),l='string'==typeof(u=n[0])&&u.startsWith('rgb');return function(t){var o=0;return n[0].replace(k,function(){var n=+p[o++](t);return l&&(n=o<4?Math.round(n):Math.round(1e3*n)/1e3),String(n)})}}function C(t){for(var n=t[0].replace(k,''),o=1;o<t.length;++o)s(n===t[o].replace(k,''),'invalid pattern '+t[0]+' and '+t[o])}function L(t,n){var o;for(o=1;o<n.length-1&&!(n[o]>=t);++o);return o-1}function N(t){s(t.length>=2,'inputRange must have at least 2 elements');for(var n=1;n<t.length;++n)s(t[n]>=t[n-1],'inputRange must be monotonically non-decreasing '+t)}function w(t,n){s(n.length>=2,t+' must have at least 2 elements'),s(2!==n.length||n[0]!==-1/0||n[1]!==1/0,t+'cannot be ]-infinity;+infinity[ '+n)}var D=(function(h){function _(n,p){var l;return t(this,_),(l=o(this,u(_).call(this)))._parent=n,l._config=p,l._interpolation=y(p),l}return l(_,f),n(_,[{key:"__makeNative",value:function(){this._parent.__makeNative(),p(u(_.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._parent.__getValue();return s('number'==typeof t,'Cannot interpolate an input which is not a number.'),this._interpolation(t)}},{key:"interpolate",value:function(t){return new _(this,t)}},{key:"__attach",value:function(){this._parent.__addChild(this)}},{key:"__detach",value:function(){this._parent.__removeChild(this),p(u(_.prototype),"__detach",this).call(this)}},{key:"__transformDataType",value:function(t){return t.map(c.transformDataType)}},{key:"__getNativeConfig",value:function(){return{inputRange:this._config.inputRange,outputRange:this.__transformDataType(this._config.outputRange),extrapolateLeft:this._config.extrapolateLeft||this._config.extrapolate||'extend',extrapolateRight:this._config.extrapolateRight||this._config.extrapolate||'extend',type:'interpolation'}}}]),_})();D.__createInterpolation=y,m.exports=D},220,[4,5,6,9,46,10,53,221,224,222,16,69]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),_=s.API,u=r(d[3]),o=1,v=(function(){function v(){t(this,v),this._listeners={}}return n(v,[{key:"__attach",value:function(){}},{key:"__detach",value:function(){this.__isNative&&null!=this.__nativeTag&&(s.API.dropAnimatedNode(this.__nativeTag),this.__nativeTag=void 0)}},{key:"__getValue",value:function(){}},{key:"__getAnimatedValue",value:function(){return this.__getValue()}},{key:"__addChild",value:function(t){}},{key:"__removeChild",value:function(t){}},{key:"__getChildren",value:function(){return[]}}]),n(v,[{key:"__makeNative",value:function(){if(!this.__isNative)throw new Error('This node cannot be made a "native" animated node');this.hasListeners()&&this._startListeningToNativeValueUpdates()}},{key:"addListener",value:function(t){var n=String(o++);return this._listeners[n]=t,this.__isNative&&this._startListeningToNativeValueUpdates(),n}},{key:"removeListener",value:function(t){delete this._listeners[t],this.__isNative&&!this.hasListeners()&&this._stopListeningForNativeValueUpdates()}},{key:"removeAllListeners",value:function(){this._listeners={},this.__isNative&&this._stopListeningForNativeValueUpdates()}},{key:"hasListeners",value:function(){return!!Object.keys(this._listeners).length}},{key:"_startListeningToNativeValueUpdates",value:function(){var t=this;this.__nativeAnimatedValueListener&&!this.__shouldUpdateListenersForNewNativeTag||(this.__shouldUpdateListenersForNewNativeTag&&(this.__shouldUpdateListenersForNewNativeTag=!1,this._stopListeningForNativeValueUpdates()),_.startListeningToAnimatedNodeValue(this.__getNativeTag()),this.__nativeAnimatedValueListener=s.nativeEventEmitter.addListener('onAnimatedValueUpdate',function(n){n.tag===t.__getNativeTag()&&t._onAnimatedValueUpdateReceived(n.value)}))}},{key:"_onAnimatedValueUpdateReceived",value:function(t){this.__callListeners(t)}},{key:"__callListeners",value:function(t){for(var n in this._listeners)this._listeners[n]({value:t})}},{key:"_stopListeningForNativeValueUpdates",value:function(){this.__nativeAnimatedValueListener&&(this.__nativeAnimatedValueListener.remove(),this.__nativeAnimatedValueListener=null,_.stopListeningToAnimatedNodeValue(this.__getNativeTag()))}},{key:"__getNativeTag",value:function(){if(s.assertNativeAnimatedModule(),u(this.__isNative,'Attempt to get native tag from node not marked as "native"'),null==this.__nativeTag){var t=s.generateNewNodeTag();this.__nativeTag=t,s.API.createAnimatedNode(t,this.__getNativeConfig()),this.__shouldUpdateListenersForNewNativeTag=!0}return this.__nativeTag}},{key:"__getNativeConfig",value:function(){throw new Error('This JS animated node type cannot be used as native animated node')}},{key:"toJSON",value:function(){return this.__getValue()}}]),v})();m.exports=v},221,[4,5,222,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),o=n(r(d[1])),l=n(r(d[2])),u=n(r(d[3])),s=1,f=1,v=!1,c=[],N={enableQueue:function(){v=!0},disableQueue:function(){(0,u.default)(l.default,'Native animated module is not available'),v=!1;for(var t=0,n=c.length;t<n;t++){var o=c[t];l.default.connectAnimatedNodes(o[0],o[1])}c.length=0},createAnimatedNode:function(t,n){(0,u.default)(l.default,'Native animated module is not available'),l.default.createAnimatedNode(t,n)},startListeningToAnimatedNodeValue:function(t){(0,u.default)(l.default,'Native animated module is not available'),l.default.startListeningToAnimatedNodeValue(t)},stopListeningToAnimatedNodeValue:function(t){(0,u.default)(l.default,'Native animated module is not available'),l.default.stopListeningToAnimatedNodeValue(t)},connectAnimatedNodes:function(t,n){(0,u.default)(l.default,'Native animated module is not available'),v?c.push([t,n]):l.default.connectAnimatedNodes(t,n)},disconnectAnimatedNodes:function(t,n){(0,u.default)(l.default,'Native animated module is not available'),l.default.disconnectAnimatedNodes(t,n)},startAnimatingNode:function(t,n,o,s){(0,u.default)(l.default,'Native animated module is not available'),l.default.startAnimatingNode(t,n,o,s)},stopAnimation:function(t){(0,u.default)(l.default,'Native animated module is not available'),l.default.stopAnimation(t)},setAnimatedNodeValue:function(t,n){(0,u.default)(l.default,'Native animated module is not available'),l.default.setAnimatedNodeValue(t,n)},setAnimatedNodeOffset:function(t,n){(0,u.default)(l.default,'Native animated module is not available'),l.default.setAnimatedNodeOffset(t,n)},flattenAnimatedNodeOffset:function(t){(0,u.default)(l.default,'Native animated module is not available'),l.default.flattenAnimatedNodeOffset(t)},extractAnimatedNodeOffset:function(t){(0,u.default)(l.default,'Native animated module is not available'),l.default.extractAnimatedNodeOffset(t)},connectAnimatedNodeToView:function(t,n){(0,u.default)(l.default,'Native animated module is not available'),l.default.connectAnimatedNodeToView(t,n)},disconnectAnimatedNodeFromView:function(t,n){(0,u.default)(l.default,'Native animated module is not available'),l.default.disconnectAnimatedNodeFromView(t,n)},dropAnimatedNode:function(t){(0,u.default)(l.default,'Native animated module is not available'),l.default.dropAnimatedNode(t)},addAnimatedEventToView:function(t,n,o){(0,u.default)(l.default,'Native animated module is not available'),l.default.addAnimatedEventToView(t,n,o)},removeAnimatedEventFromView:function(t,n,o){(0,u.default)(l.default,'Native animated module is not available'),l.default.removeAnimatedEventFromView(t,n,o)}},p={opacity:!0,transform:!0,borderRadius:!0,borderBottomEndRadius:!0,borderBottomLeftRadius:!0,borderBottomRightRadius:!0,borderBottomStartRadius:!0,borderTopEndRadius:!0,borderTopLeftRadius:!0,borderTopRightRadius:!0,borderTopStartRadius:!0,elevation:!0,shadowOpacity:!0,shadowRadius:!0,scaleX:!0,scaleY:!0,translateX:!0,translateY:!0},A={translateX:!0,translateY:!0,scale:!0,scaleX:!0,scaleY:!0,rotate:!0,rotateX:!0,rotateY:!0,rotateZ:!0,perspective:!0},b={inputRange:!0,outputRange:!0,extrapolate:!0,extrapolateRight:!0,extrapolateLeft:!0};var h=!1;m.exports={API:N,addWhitelistedStyleProp:function(t){p[t]=!0},addWhitelistedTransformProp:function(t){A[t]=!0},addWhitelistedInterpolationParam:function(t){b[t]=!0},validateStyles:function(t){for(var n in t)if(!p.hasOwnProperty(n))throw new Error("Style property '"+n+"' is not supported by native animated module")},validateTransform:function(t){t.forEach(function(t){if(!A.hasOwnProperty(t.property))throw new Error("Property '"+t.property+"' is not supported by native animated module")})},validateInterpolation:function(t){for(var n in t)if(!b.hasOwnProperty(n))throw new Error("Interpolation property '"+n+"' is not supported by native animated module")},generateNewNodeTag:function(){return s++},generateNewAnimationId:function(){return f++},assertNativeAnimatedModule:function(){(0,u.default)(l.default,'Native animated module is not available')},shouldUseNativeDriver:
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('NativeAnimatedModule');e.default=u},223,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),s=r(d[3]),h=r(d[4]),l=r(d[5]),o=r(d[6]),c=r(d[7]),v=(function(v){function u(){var _;return t(this,u),(_=n(this,s(u).call(this)))._children=[],_}return l(u,o),_(u,[{key:"__makeNative",value:function(){if(!this.__isNative){this.__isNative=!0;var t=this._children,_=Array.isArray(t),n=0;for(t=_?t:t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(_){if(n>=t.length)break;l=t[n++]}else{if((n=t.next()).done)break;l=n.value}var o=l;o.__makeNative(),c.API.connectAnimatedNodes(this.__getNativeTag(),o.__getNativeTag())}}h(s(u.prototype),"__makeNative",this).call(this)}},{key:"__addChild",value:function(t){0===this._children.length&&this.__attach(),this._children.push(t),this.__isNative&&(t.__makeNative(),c.API.connectAnimatedNodes(this.__getNativeTag(),t.__getNativeTag()))}},{key:"__removeChild",value:function(t){var _=this._children.indexOf(t);-1!==_?(this.__isNative&&t.__isNative&&c.API.disconnectAnimatedNodes(this.__getNativeTag(),t.__getNativeTag()),this._children.splice(_,1),0===this._children.length&&this.__detach()):console.warn("Trying to remove a child that doesn't exist")}},{key:"__getChildren",value:function(){return this._children}},{key:"__callListeners",value:function(t){if(h(s(u.prototype),"__callListeners",this).call(this,t),!this.__isNative){var _=this._children,n=Array.isArray(_),l=0;for(_=n?_:_["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var o;if(n){if(l>=_.length)break;o=_[l++]}else{if((l=_.next()).done)break;o=l.value}var c=o;c.__getValue&&c.__callListeners(c.__getValue())}}}}]),u})();m.exports=v},224,[4,5,6,9,46,10,221,222]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),c=(r(d[3]),r(d[4])),s=r(d[5]),u=new t,l={Events:s({interactionStart:!0,interactionComplete:!0}),runAfterInteractions:function(n){var t=[],o=new Promise(function(o){k(),n&&t.push(n),t.push({run:o,name:'resolve '+(n&&n.name||'?')}),h.enqueueTasks(t)});return{then:o.then.bind(o),done:function(){if(o.done)return o.done.apply(o,arguments);console.warn('Tried to call done when not supported by current Promise implementation.')},cancel:function(){h.cancelTasks(t)}}},createInteractionHandle:function(){k();var n=++T;return p.add(n),n},clearInteractionHandle:function(n){c(!!n,'InteractionManager: Must provide a handle to clear.'),k(),p.delete(n),v.add(n)},addListener:u.addListener.bind(u),setDeadline:function(n){E=n}},f=new Set,p=new Set,v=new Set,h=new o({onMoreTasks:k}),w=0,T=0,E=-1;function k(){w||(w=E>0?setTimeout(I,0):setImmediate(I))}function I(){w=0;var t=f.size;p.forEach(function(n){return f.add(n)}),v.forEach(function(n){return f.delete(n)});var o=f.size;if(0!==t&&0===o?u.emit(l.Events.interactionComplete):0===t&&0!==o&&u.emit(l.Events.interactionStart),0===o)for(;h.hasTasksToProcess();)if(h.processNext(),E>0&&n.getEventLoopRunningTime()>=E){k();break}p.clear(),v.clear()}m.exports=l},225,[29,48,226,156,16,211]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=r(d[1]),s=r(d[2]),n=(r(d[3]),r(d[4])),o=(function(){function o(t){var s=t.onMoreTasks;u(this,o),this._onMoreTasks=s,this._queueStack=[{tasks:[],popable:!1}]}return s(o,[{key:"enqueue",value:function(t){this._getCurrentQueue().push(t)}},{key:"enqueueTasks",value:function(t){var u=this;t.forEach(function(t){return u.enqueue(t)})}},{key:"cancelTasks",value:function(u){this._queueStack=this._queueStack.map(function(s){return t({},s,{tasks:s.tasks.filter(function(t){return-1===u.indexOf(t)})})}).filter(function(t,u){return t.tasks.length>0||0===u})}},{key:"hasTasksToProcess",value:function(){return this._getCurrentQueue().length>0}},{key:"processNext",value:function(){var t=this._getCurrentQueue();if(t.length){var u=t.shift();try{u.gen?this._genPromise(u):u.run?u.run():(n('function'==typeof u,'Expected Function, SimpleTask, or PromiseTask, but got:\n'+JSON.stringify(u,null,2)),u())}catch(t){throw t.message='TaskQueue: Error with task '+(u.name||'')+': '+t.message,t}}}},{key:"_getCurrentQueue",value:function(){var t=this._queueStack.length-1,u=this._queueStack[t];return u.popable&&0===u.tasks.length&&this._queueStack.length>1?(this._queueStack.pop(),this._getCurrentQueue()):u.tasks}},{key:"_genPromise",value:function(t){var u=this;this._queueStack.push({tasks:[],popable:!1});var s=this._queueStack.length-1;t.gen().then(function(){u._queueStack[s].popable=!0,u.hasTasksToProcess()&&u._onMoreTasks()}).catch(function(u){throw u.message="TaskQueue: Error resolving Promise in task "+t.name+": "+u.message,u}).done()}}]),o})();m.exports=o},226,[53,4,5,156,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=t.AnimatedEvent,u=t.attachNativeEvent,s=r(d[2]),c=r(d[3]),f=r(d[4]),v=r(d[5]),p=r(d[6]),l=r(d[7]),h=r(d[8]),_=r(d[9]),N=r(d[10]),w=r(d[11]),E=r(d[12]),y=r(d[13]),D=r(d[14]),L=r(d[15]),A=r(d[16]),U=r(d[17]),k=function(n,t){return n&&t.onComplete?function(){t.onComplete&&t.onComplete.apply(t,arguments),n&&n.apply(void 0,arguments)}:n||t.onComplete},V=function(t,o,u){if(t instanceof y){var s=n({},o),c=n({},o);for(var f in o){var v=o[f],p=v.x,l=v.y;void 0!==p&&void 0!==l&&(s[f]=p,c[f]=l)}var h=u(t.x,s),_=u(t.y,c);return x([h,_],{stopTogether:!1})}return null},C=function t(o,u){var s=function(n,t,o){o=k(o,t);var u=n,s=t;u.stopTracking(),t.toValue instanceof h?u.track(new w(u,t.toValue,A,s,o)):u.animate(new A(s),o)};return V(o,u,t)||{start:function(n){s(o,u,n)},stop:function(){o.stopAnimation()},reset:function(){o.resetAnimation()},_startNativeLoop:function(t){var c=n({},u,{iterations:t});s(o,c)},_isUsingNativeDriver:function(){return u.useNativeDriver||!1}}},T=function(n){var t=0;return{start:function(o){0===n.length?o&&o({finished:!0}):n[t].start(function u(s){s.finished&&++t!==n.length?n[t].start(u):o&&o(s)})},stop:function(){t<n.length&&n[t].stop()},reset:function(){n.forEach(function(n,o){o<=t&&n.reset()}),t=0},_startNativeLoop:function(){throw new Error('Loops run using the native driver cannot contain Animated.sequence animations')},_isUsingNativeDriver:function(){return!1}}},x=function(n,t){var o=0,u={},s=!(t&&!1===t.stopTogether),c={start:function(t){o!==n.length?n.forEach(function(f,v){var p=function(f){if(u[v]=!0,++o===n.length)return o=0,void(t&&t(f));!f.finished&&s&&c.stop()};f?f.start(p):p({finished:!0})}):t&&t({finished:!0})},stop:function(){n.forEach(function(n,t){!u[t]&&n.stop(),u[t]=!0})},reset:function(){n.forEach(function(n,t){n.reset(),u[t]=!1,o=0})},_startNativeLoop:function(){throw new Error('Loops run using the native driver cannot contain Animated.parallel animations')},_isUsingNativeDriver:function(){return!1}};return c},q=function(n){return C(new E(0),{toValue:0,delay:n,duration:0,useNativeDriver:!1})};m.exports={Value:E,ValueXY:y,Interpolation:v,Node:h,decay:function t(o,u){var s=function(n,t,o){o=k(o,t);var u=n,s=t;u.stopTracking(),u.animate(new D(s),o)};return V(o,u,t)||{start:function(n){s(o,u,n)},stop:function(){o.stopAnimation()},reset:function(){o.resetAnimation()},_startNativeLoop:function(t){var c=n({},u,{iterations:t});s(o,c)},_isUsingNativeDriver:function(){return u.useNativeDriver||!1}}},timing:C,spring:function t(o,u){var s=function(n,t,o){o=k(o,t);var u=n,s=t;u.stopTracking(),t.toValue instanceof h?u.track(new w(u,t.toValue,L,s,o)):u.animate(new L(s),o)};return V(o,u,t)||{start:function(n){s(o,u,n)},stop:function(){o.stopAnimation()},reset:function(){o.resetAnimation()},_startNativeLoop:function(t){var c=n({},u,{iterations:t});s(o,c)},_isUsingNativeDriver:function(){return u.useNativeDriver||!1}}},add:function(n,t){return new s(n,t)},subtract:function(n,t){return new N(n,t)},divide:function(n,t){return new f(n,t)},multiply:function(n,t){return new l(n,t)},modulo:function(n,t){return new p(n,t)},diffClamp:function(n,t,o){return new c(n,t,o)},delay:q,sequence:T,parallel:x,stagger:function(n,t){return x(t.map(function(t,o){return T([q(n*o),t])}))},loop:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=t.iterations,u=void 0===o?-1:o,s=t.resetBeforeIteration,c=void 0===s||s,f=!1,v=0;return{start:function(t){n&&0!==u?n._isUsingNativeDriver()?n._startNativeLoop(u):(function o(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{finished:!0};f||v===u||!1===s.finished?t&&t(s):(v++,c&&n.reset(),n.start(o))})():t&&t({finished:!0})},stop:function(){f=!0,n.stop()},reset:function(){v=0,f=!1,n.reset()},_startNativeLoop:function(){throw new Error('Loops run using the native driver cannot contain Animated.loop animations')},_isUsingNativeDriver:function(){return n._isUsingNativeDriver()}}},event:function(n,t){var u=new o(n,t);return u.__isNative?u:u.__getHandler()},createAnimatedComponent:U,attachN
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),o=r(d[6]),l=(r(d[7]),r(d[8])),v=r(d[9]),c=(function(c){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,s._b='number'==typeof u?new l(u):u,s}return s(f,v),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()+this._b.__getValue()}},{key:"interpolate",value:function(t){return new o(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'addition',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=c},228,[4,5,6,9,46,10,220,221,219,224]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),u=r(d[3]),h=r(d[4]),s=r(d[5]),l=r(d[6]),v=(r(d[7]),r(d[8])),c=(function(c){function o(_,h,s){var l;return t(this,o),(l=n(this,u(o).call(this)))._a=_,l._min=h,l._max=s,l._value=l._lastValue=l._a.__getValue(),l}return s(o,v),_(o,[{key:"__makeNative",value:function(){this._a.__makeNative(),h(u(o.prototype),"__makeNative",this).call(this)}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),_=t-this._lastValue;return this._lastValue=t,this._value=Math.min(Math.max(this._value+_,this._min),this._max),this._value}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),h(u(o.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'diffclamp',input:this._a.__getNativeTag(),min:this._min,max:this._max}}}]),o})();m.exports=c},229,[4,5,6,9,46,10,220,221,224]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),s=r(d[4]),o=r(d[5]),u=r(d[6]),l=(r(d[7]),r(d[8])),v=r(d[9]),c=(function(c){function f(_,s){var o;return t(this,f),(o=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,o._b='number'==typeof s?new l(s):s,o}return o(f,v),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),s(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){var t=this._a.__getValue(),_=this._b.__getValue();return 0===_&&console.error('Detected division by zero in AnimatedDivision'),t/_}},{key:"interpolate",value:function(t){return new u(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),s(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'division',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=c},230,[4,5,6,9,46,10,220,221,219,224]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=r(d[1]),_=r(d[2]),s=r(d[3]),n=r(d[4]),h=r(d[5]),l=r(d[6]),o=(r(d[7]),r(d[8])),c=(function(c){function v(u,n){var h;return t(this,v),(h=_(this,s(v).call(this)))._a=u,h._modulus=n,h}return h(v,o),u(v,[{key:"__makeNative",value:function(){this._a.__makeNative(),n(s(v.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return(this._a.__getValue()%this._modulus+this._modulus)%this._modulus}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),n(s(v.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'modulus',input:this._a.__getNativeTag(),modulus:this._modulus}}}]),v})();m.exports=c},231,[4,5,6,9,46,10,220,221,224]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),l=r(d[6]),o=(r(d[7]),r(d[8])),c=r(d[9]),v=(function(v){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new o(_):_,s._b='number'==typeof u?new o(u):u,s}return s(f,c),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()*this._b.__getValue()}},{key:"interpolate",value:function(t){return new l(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'multiplication',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=v},232,[4,5,6,9,46,10,220,221,219,224]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),s=r(d[3]),o=r(d[4]),c=r(d[5]),v=r(d[6]),h=r(d[7]).AnimatedEvent,l=r(d[8]),p=r(d[9]),u=r(d[10]),f=r(d[11]),N=r(d[12]),V=(function(V){function k(_,c){var v;return n(this,k),v=s(this,o(k).call(this)),_.style&&(_=t({},_,{style:new p(_.style)})),v._props=_,v._callback=c,v.__attach(),v}return v(k,l),_(k,[{key:"__getValue",value:function(){var t={};for(var n in this._props){var _=this._props[n];_ instanceof l?(!_.__isNative||_ instanceof p)&&(t[n]=_.__getValue()):t[n]=_ instanceof h?_.__getHandler():_}return t}},{key:"__getAnimatedValue",value:function(){var t={};for(var n in this._props){var _=this._props[n];_ instanceof l&&(t[n]=_.__getAnimatedValue())}return t}},{key:"__attach",value:function(){for(var t in this._props){var n=this._props[t];n instanceof l&&n.__addChild(this)}}},{key:"__detach",value:function(){for(var t in this.__isNative&&this._animatedView&&this.__disconnectAnimatedView(),this._props){var n=this._props[t];n instanceof l&&n.__removeChild(this)}c(o(k.prototype),"__detach",this).call(this)}},{key:"update",value:function(){this._callback()}},{key:"__makeNative",value:function(){if(!this.__isNative){for(var t in this.__isNative=!0,this._props){var n=this._props[t];n instanceof l&&n.__makeNative()}this._animatedView&&this.__connectAnimatedView()}}},{key:"setNativeView",value:function(t){this._animatedView!==t&&(this._animatedView=t,this.__isNative&&this.__connectAnimatedView())}},{key:"__connectAnimatedView",value:function(){N(this.__isNative,'Expected node to be marked as "native"');var t=f.findNodeHandle(this._animatedView);N(null!=t,'Unable to locate attached view in the native tree'),u.API.connectAnimatedNodeToView(this.__getNativeTag(),t)}},{key:"__disconnectAnimatedView",value:function(){N(this.__isNative,'Expected node to be marked as "native"');var t=f.findNodeHandle(this._animatedView);N(null!=t,'Unable to locate attached view in the native tree'),u.API.disconnectAnimatedNodeFromView(this.__getNativeTag(),t)}},{key:"__getNativeConfig",value:function(){var t={};for(var n in this._props){var _=this._props[n];_ instanceof l&&(_.__makeNative(),t[n]=_.__getNativeTag())}return{type:'props',props:t}}}]),k})();m.exports=V},233,[53,4,5,6,9,46,10,218,221,234,222,92,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),l=r(d[3]),_=r(d[4]),y=r(d[5]),o=r(d[6]),u=r(d[7]),v=r(d[8]),f=r(d[9]),h=r(d[10]),c=r(d[11]),k=(function(k){function A(s){var y;return n(this,A),y=l(this,_(A).call(this)),(s=c(s)||{}).transform&&(s=t({},s,{transform:new v(s.transform)})),y._style=s,y}return o(A,f),s(A,[{key:"_walkStyleAndGetValues",value:function(t){var n={};for(var s in t){var l=t[s];l instanceof u?l.__isNative||(n[s]=l.__getValue()):l&&!Array.isArray(l)&&'object'==typeof l?n[s]=this._walkStyleAndGetValues(l):n[s]=l}return n}},{key:"__getValue",value:function(){return this._walkStyleAndGetValues(this._style)}},{key:"_walkStyleAndGetAnimatedValues",value:function(t){var n={};for(var s in t){var l=t[s];l instanceof u?n[s]=l.__getAnimatedValue():l&&!Array.isArray(l)&&'object'==typeof l&&(n[s]=this._walkStyleAndGetAnimatedValues(l))}return n}},{key:"__getAnimatedValue",value:function(){return this._walkStyleAndGetAnimatedValues(this._style)}},{key:"__attach",value:function(){for(var t in this._style){var n=this._style[t];n instanceof u&&n.__addChild(this)}}},{key:"__detach",value:function(){for(var t in this._style){var n=this._style[t];n instanceof u&&n.__removeChild(this)}y(_(A.prototype),"__detach",this).call(this)}},{key:"__makeNative",value:function(){for(var t in this._style){var n=this._style[t];n instanceof u&&n.__makeNative()}y(_(A.prototype),"__makeNative",this).call(this)}},{key:"__getNativeConfig",value:function(){var t={};for(var n in this._style)if(this._style[n]instanceof u){var s=this._style[n];s.__makeNative(),t[n]=s.__getNativeTag()}return h.validateStyles(t),{type:'style',style:t}}}]),A})();m.exports=k},234,[53,4,5,6,9,46,10,221,235,224,222,89]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),f=r(d[4]),_=r(d[5]),u=r(d[6]),c=r(d[7]),v=r(d[8]),h=(function(h){function l(n){var f;return t(this,l),(f=o(this,s(l).call(this)))._transforms=n,f}return _(l,c),n(l,[{key:"__makeNative",value:function(){this._transforms.forEach(function(t){for(var n in t){var o=t[n];o instanceof u&&o.__makeNative()}}),f(s(l.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._transforms.map(function(t){var n={};for(var o in t){var s=t[o];n[o]=s instanceof u?s.__getValue():s}return n})}},{key:"__getAnimatedValue",value:function(){return this._transforms.map(function(t){var n={};for(var o in t){var s=t[o];n[o]=s instanceof u?s.__getAnimatedValue():s}return n})}},{key:"__attach",value:function(){var t=this;this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof u&&s.__addChild(t)}})}},{key:"__detach",value:function(){var t=this;this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof u&&s.__removeChild(t)}}),f(s(l.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){var t=[];return this._transforms.forEach(function(n){for(var o in n){var s=n[o];s instanceof u?t.push({type:'animated',property:o,nodeTag:s.__getNativeTag()}):t.push({type:'static',property:o,value:v.transformDataType(s)})}}),v.validateTransform(t),{type:'transform',transforms:t}}}]),l})();m.exports=h},235,[4,5,6,9,46,10,221,224,222]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),_=r(d[1]),n=r(d[2]),h=r(d[3]),u=r(d[4]),s=r(d[5]),o=r(d[6]),l=(r(d[7]),r(d[8])),c=r(d[9]),v=(function(v){function f(_,u){var s;return t(this,f),(s=n(this,h(f).call(this)))._a='number'==typeof _?new l(_):_,s._b='number'==typeof u?new l(u):u,s}return s(f,c),_(f,[{key:"__makeNative",value:function(){this._a.__makeNative(),this._b.__makeNative(),u(h(f.prototype),"__makeNative",this).call(this)}},{key:"__getValue",value:function(){return this._a.__getValue()-this._b.__getValue()}},{key:"interpolate",value:function(t){return new o(this,t)}},{key:"__attach",value:function(){this._a.__addChild(this),this._b.__addChild(this)}},{key:"__detach",value:function(){this._a.__removeChild(this),this._b.__removeChild(this),u(h(f.prototype),"__detach",this).call(this)}},{key:"__getNativeConfig",value:function(){return{type:'subtraction',input:[this._a.__getNativeTag(),this._b.__getNativeTag()]}}}]),f})();m.exports=v},236,[4,5,6,9,46,10,220,221,219,224]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),_=r(d[2]),s=r(d[3]),o=r(d[4]),u=r(d[5]),l=r(d[6]),h=(r(d[7]),r(d[8])),v=r(d[9]),c=v.generateNewAnimationId,f=v.shouldUseNativeDriver,k=(function(v){function k(t,_,u,l,h){var v;return n(this,k),(v=s(this,o(k).call(this)))._value=t,v._parent=_,v._animationClass=u,v._animationConfig=l,v._useNativeDriver=f(l),v._callback=h,v.__attach(),v}return l(k,h),_(k,[{key:"__makeNative",value:function(){this.__isNative=!0,this._parent.__makeNative(),u(o(k.prototype),"__makeNative",this).call(this),this._value.__makeNative()}},{key:"__getValue",value:function(){return this._parent.__getValue()}},{key:"__attach",value:function(){this._parent.__addChild(this),this._useNativeDriver&&this.__makeNative()}},{key:"__detach",value:function(){this._parent.__removeChild(this),u(o(k.prototype),"__detach",this).call(this)}},{key:"update",value:function(){this._value.animate(new this._animationClass(t({},this._animationConfig,{toValue:this._animationConfig.toValue.__getValue()})),this._callback)}},{key:"__getNativeConfig",value:function(){var n=new this._animationClass(t({},this._animationConfig,{toValue:void 0})).__getNativeAnimationConfig();return{type:'tracking',animationId:c(),animationConfig:n,toValue:this._parent.__getNativeTag(),value:this._value.__getNativeTag()}}}]),k})();m.exports=k},237,[53,4,5,6,9,46,10,219,221,222]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),u=r(d[3]),l=r(d[4]),f=r(d[5]),o=r(d[6]),y=r(d[7]),h=1,x=(function(x){function c(s){var l;t(this,c),l=n(this,u(c).call(this));var o=s||{x:0,y:0};return'number'==typeof o.x&&'number'==typeof o.y?(l.x=new f(o.x),l.y=new f(o.y)):(y(o.x instanceof f&&o.y instanceof f,"AnimatedValueXY must be initialized with an object of numbers or AnimatedValues."),l.x=o.x,l.y=o.y),l._listeners={},l}return l(c,o),s(c,[{key:"setValue",value:function(t){this.x.setValue(t.x),this.y.setValue(t.y)}},{key:"setOffset",value:function(t){this.x.setOffset(t.x),this.y.setOffset(t.y)}},{key:"flattenOffset",value:function(){this.x.flattenOffset(),this.y.flattenOffset()}},{key:"extractOffset",value:function(){this.x.extractOffset(),this.y.extractOffset()}},{key:"__getValue",value:function(){return{x:this.x.__getValue(),y:this.y.__getValue()}}},{key:"resetAnimation",value:function(t){this.x.resetAnimation(),this.y.resetAnimation(),t&&t(this.__getValue())}},{key:"stopAnimation",value:function(t){this.x.stopAnimation(),this.y.stopAnimation(),t&&t(this.__getValue())}},{key:"addListener",value:function(t){var s=this,n=String(h++),u=function(n){n.value;t(s.__getValue())};return this._listeners[n]={x:this.x.addListener(u),y:this.y.addListener(u)},n}},{key:"removeListener",value:function(t){this.x.removeListener(this._listeners[t].x),this.y.removeListener(this._listeners[t].y),delete this._listeners[t]}},{key:"removeAllListeners",value:function(){this.x.removeAllListeners(),this.y.removeAllListeners(),this._listeners={}}},{key:"getLayout",value:function(){return{left:this.x,top:this.y}}},{key:"getTranslateTransform",value:function(){return[{translateX:this.x},{translateY:this.y}]}}]),c})();m.exports=x},238,[4,5,6,9,10,219,224,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),_=r(d[4]),h=r(d[5]),l=r(d[6]),c=r(d[7]).shouldUseNativeDriver,u=(function(u){function v(n){var _,h,l,u;return t(this,v),(u=s(this,o(v).call(this)))._deceleration=null!=(_=n.deceleration)?_:.998,u._velocity=n.velocity,u._useNativeDriver=c(n),u.__isInteraction=null!=(h=n.isInteraction)?h:!u._useNativeDriver,u.__iterations=null!=(l=n.iterations)?l:1,u}return h(v,l),n(v,[{key:"__getNativeAnimationConfig",value:function(){return{type:'decay',deceleration:this._deceleration,velocity:this._velocity,iterations:this.__iterations}}},{key:"start",value:function(t,n,s,o,_){this.__active=!0,this._lastValue=t,this._fromValue=t,this._onUpdate=n,this.__onEnd=s,this._startTime=Date.now(),this._useNativeDriver?this.__startNativeAnimation(_):this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))}},{key:"onUpdate",value:function(){var t=Date.now(),n=this._fromValue+this._velocity/(1-this._deceleration)*(1-Math.exp(-(1-this._deceleration)*(t-this._startTime)));this._onUpdate(n),Math.abs(this._lastValue-n)<.1?this.__debouncedOnEnd({finished:!0}):(this._lastValue=n,this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this))))}},{key:"stop",value:function(){_(o(v.prototype),"stop",this).call(this),this.__active=!1,g.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),v})();m.exports=u},239,[4,5,6,9,46,10,240,222]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]),_=(function(){function _(){n(this,_)}return t(_,[{key:"start",value:function(n,t,o,_,u){}},{key:"stop",value:function(){this.__nativeId&&o.API.stopAnimation(this.__nativeId)}},{key:"__getNativeAnimationConfig",value:function(){throw new Error('This animation type cannot be offloaded to native')}},{key:"__debouncedOnEnd",value:function(n){var t=this.__onEnd;this.__onEnd=null,t&&t(n)}},{key:"__startNativeAnimation",value:function(n){o.API.enableQueue(),n.__makeNative(),o.API.disableQueue(),this.__nativeId=o.generateNewAnimationId(),o.API.startAnimatingNode(this.__nativeId,n.__getNativeTag(),this.__getNativeAnimationConfig(),this.__debouncedOnEnd.bind(this))}}]),_})();m.exports=_},240,[4,5,222]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),n=r(d[2]),o=r(d[3]),l=r(d[4]),h=r(d[5]),_=(r(d[6]),r(d[7]),r(d[8])),u=r(d[9]),f=r(d[10]),c=r(d[11]).shouldUseNativeDriver,v=(function(v){function p(s){var l,h,_,v,y,V,T,b,M,D,P,S;if(t(this,p),(M=n(this,o(p).call(this)))._overshootClamping=null!=(l=s.overshootClamping)&&l,M._restDisplacementThreshold=null!=(h=s.restDisplacementThreshold)?h:.001,M._restSpeedThreshold=null!=(_=s.restSpeedThreshold)?_:.001,M._initialVelocity=null!=(v=s.velocity)?v:0,M._lastVelocity=null!=(y=s.velocity)?y:0,M._toValue=s.toValue,M._delay=null!=(V=s.delay)?V:0,M._useNativeDriver=c(s),M.__isInteraction=null!=(T=s.isInteraction)?T:!M._useNativeDriver,M.__iterations=null!=(b=s.iterations)?b:1,void 0!==s.stiffness||void 0!==s.damping||void 0!==s.mass)f(void 0===s.bounciness&&void 0===s.speed&&void 0===s.tension&&void 0===s.friction,'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one'),M._stiffness=null!=(D=s.stiffness)?D:100,M._damping=null!=(P=s.damping)?P:10,M._mass=null!=(S=s.mass)?S:1;else if(void 0!==s.bounciness||void 0!==s.speed){var U,A;f(void 0===s.tension&&void 0===s.friction&&void 0===s.stiffness&&void 0===s.damping&&void 0===s.mass,'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');var C=u.fromBouncinessAndSpeed(null!=(U=s.bounciness)?U:8,null!=(A=s.speed)?A:12);M._stiffness=C.stiffness,M._damping=C.damping,M._mass=1}else{var N,k,F=u.fromOrigamiTensionAndFriction(null!=(N=s.tension)?N:40,null!=(k=s.friction)?k:7);M._stiffness=F.stiffness,M._damping=F.damping,M._mass=1}return f(M._stiffness>0,'Stiffness value must be greater than 0'),f(M._damping>0,'Damping value must be greater than 0'),f(M._mass>0,'Mass value must be greater than 0'),M}return h(p,_),s(p,[{key:"__getNativeAnimationConfig",value:function(){var t;return{type:'spring',overshootClamping:this._overshootClamping,restDisplacementThreshold:this._restDisplacementThreshold,restSpeedThreshold:this._restSpeedThreshold,stiffness:this._stiffness,damping:this._damping,mass:this._mass,initialVelocity:null!=(t=this._initialVelocity)?t:this._lastVelocity,toValue:this._toValue,iterations:this.__iterations}}},{key:"start",value:function(t,s,n,o,l){var h=this;if(this.__active=!0,this._startPosition=t,this._lastPosition=this._startPosition,this._onUpdate=s,this.__onEnd=n,this._lastTime=Date.now(),this._frameTime=0,o instanceof p){var _=o.getInternalState();this._lastPosition=_.lastPosition,this._lastVelocity=_.lastVelocity,this._initialVelocity=this._lastVelocity,this._lastTime=_.lastTime}var u=function(){h._useNativeDriver?h.__startNativeAnimation(l):h.onUpdate()};this._delay?this._timeout=setTimeout(u,this._delay):u()}},{key:"getInternalState",value:function(){return{lastPosition:this._lastPosition,lastVelocity:this._lastVelocity,lastTime:this._lastTime}}},{key:"onUpdate",value:function(){var t=Date.now();t>this._lastTime+64&&(t=this._lastTime+64);var s=(t-this._lastTime)/1e3;this._frameTime+=s;var n=this._damping,o=this._mass,l=this._stiffness,h=-this._initialVelocity,_=n/(2*Math.sqrt(l*o)),u=Math.sqrt(l/o),f=u*Math.sqrt(1-_*_),c=this._toValue-this._startPosition,v=0,p=0,y=this._frameTime;if(_<1){var V=Math.exp(-_*u*y);v=this._toValue-V*((h+_*u*c)/f*Math.sin(f*y)+c*Math.cos(f*y)),p=_*u*V*(Math.sin(f*y)*(h+_*u*c)/f+c*Math.cos(f*y))-V*(Math.cos(f*y)*(h+_*u*c)-f*c*Math.sin(f*y))}else{var T=Math.exp(-u*y);v=this._toValue-T*(c+(h+u*c)*y),p=T*(h*(y*u-1)+y*c*(u*u))}if(this._lastTime=t,this._lastPosition=v,this._lastVelocity=p,this._onUpdate(v),this.__active){var b=!1;this._overshootClamping&&0!==this._stiffness&&(b=this._startPosition<this._toValue?v>this._toValue:v<this._toValue);var M=Math.abs(p)<=this._restSpeedThreshold,D=!0;if(0!==this._stiffness&&(D=Math.abs(this._toValue-v)<=this._restDisplacementThreshold),b||M&&D)return 0!==this._stiffness&&(this._lastPosition=this._toValue,this._lastVelocity=0,this._onUpdate(this._toValue)),void this.__debouncedOnEnd({finished:!0});this._animationFrame=requestAnimationFrame(
__d(function(g,r,i,a,m,e,d){'use strict';function n(n){return 3.62*(n-30)+194}function t(n){return 3*(n-8)+25}m.exports={fromOrigamiTensionAndFriction:function(o,u){return{stiffness:n(o),damping:t(u)}},fromBouncinessAndSpeed:function(o,u){function f(n,t,o){return(n-t)/(o-t)}function c(n,t,o){return t+n*(o-t)}function s(n,t,o){return n*o+(1-n)*t}function p(n){return 44e-6*Math.pow(n,3)-.006*Math.pow(n,2)+.36*n+2}function h(n){return 4.5e-7*Math.pow(n,3)-332e-6*Math.pow(n,2)+.1078*n+5.84}var w=f(o/1.7,0,20);w=c(w,0,.8);var M,v,A,_,x=c(f(u/1.7,0,20),.5,200),B=(M=w,v=(A=x)<=18?(_=A,7e-4*Math.pow(_,3)-.031*Math.pow(_,2)+.64*_+1.28):A>18&&A<=44?p(A):h(A),s(2*M-M*M,v,.01));return{stiffness:n(x),damping:t(B)}}}},242,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),s=r(d[1]),o=r(d[2]),_=r(d[3]),u=r(d[4]),h=r(d[5]),l=(r(d[6]),r(d[7]),r(d[8])),v=r(d[9]).shouldUseNativeDriver;function c(){if(!t){var n=r(d[10]);t=n.inOut(n.ease)}return t}var f=(function(t){function f(t){var s,u,h,l,p,V;return n(this,f),(V=o(this,_(f).call(this)))._toValue=t.toValue,V._easing=null!=(s=t.easing)?s:c(),V._duration=null!=(u=t.duration)?u:500,V._delay=null!=(h=t.delay)?h:0,V.__iterations=null!=(l=t.iterations)?l:1,V._useNativeDriver=v(t),V.__isInteraction=null!=(p=t.isInteraction)?p:!V._useNativeDriver,V}return h(f,l),s(f,[{key:"__getNativeAnimationConfig",value:function(){for(var t=[],n=Math.round(this._duration/16.666666666666668),s=0;s<n;s++)t.push(this._easing(s/n));return t.push(this._easing(1)),{type:'frames',frames:t,toValue:this._toValue,iterations:this.__iterations}}},{key:"start",value:function(t,n,s,o,_){var u=this;this.__active=!0,this._fromValue=t,this._onUpdate=n,this.__onEnd=s;var h=function(){0!==u._duration||u._useNativeDriver?(u._startTime=Date.now(),u._useNativeDriver?u.__startNativeAnimation(_):u._animationFrame=requestAnimationFrame(u.onUpdate.bind(u))):(u._onUpdate(u._toValue),u.__debouncedOnEnd({finished:!0}))};this._delay?this._timeout=setTimeout(h,this._delay):h()}},{key:"onUpdate",value:function(){var t=Date.now();if(t>=this._startTime+this._duration)return 0===this._duration?this._onUpdate(this._toValue):this._onUpdate(this._fromValue+this._easing(1)*(this._toValue-this._fromValue)),void this.__debouncedOnEnd({finished:!0});this._onUpdate(this._fromValue+this._easing((t-this._startTime)/this._duration)*(this._toValue-this._fromValue)),this.__active&&(this._animationFrame=requestAnimationFrame(this.onUpdate.bind(this)))}},{key:"stop",value:function(){u(_(f.prototype),"stop",this).call(this),this.__active=!1,clearTimeout(this._timeout),g.cancelAnimationFrame(this._animationFrame),this.__debouncedOnEnd({finished:!1})}}]),f})();m.exports=f},243,[4,5,6,9,46,10,219,238,240,222,244]);
__d(function(g,r,i,a,m,e,d){'use strict';var n,u=r(d[0]),t=r(d[1]),o=(function(){function o(){u(this,o)}return t(o,null,[{key:"step0",value:function(n){return n>0?1:0}},{key:"step1",value:function(n){return n>=1?1:0}},{key:"linear",value:function(n){return n}},{key:"ease",value:function(u){return n||(n=o.bezier(.42,0,1,1)),n(u)}},{key:"quad",value:function(n){return n*n}},{key:"cubic",value:function(n){return n*n*n}},{key:"poly",value:function(n){return function(u){return Math.pow(u,n)}}},{key:"sin",value:function(n){return 1-Math.cos(n*Math.PI/2)}},{key:"circle",value:function(n){return 1-Math.sqrt(1-n*n)}},{key:"exp",value:function(n){return Math.pow(2,10*(n-1))}},{key:"elastic",value:function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)*Math.PI;return function(u){return 1-Math.pow(Math.cos(u*Math.PI/2),3)*Math.cos(u*n)}}},{key:"back",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1.70158;return function(u){return u*u*((n+1)*u-n)}}},{key:"bounce",value:function(n){if(n<.36363636363636365)return 7.5625*n*n;if(n<.7272727272727273){var u=n-.5454545454545454;return 7.5625*u*u+.75}if(n<.9090909090909091){var t=n-.8181818181818182;return 7.5625*t*t+.9375}var o=n-.9545454545454546;return 7.5625*o*o+.984375}},{key:"bezier",value:function(n,u,t,o){return r(d[2])(n,u,t,o)}},{key:"in",value:function(n){return n}},{key:"out",value:function(n){return function(u){return 1-n(1-u)}}},{key:"inOut",value:function(n){return function(u){return u<.5?n(2*u)/2:1-n(2*(1-u))/2}}}]),o})();m.exports=o},244,[4,5,245]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=4,t=.001,u=1e-7,o=10,f=.1,c='function'==typeof Float32Array;function v(n,t){return 1-3*t+3*n}function s(n,t){return 3*t-6*n}function w(n){return 3*n}function l(n,t,u){return((v(t,u)*n+s(t,u))*n+w(t))*n}function y(n,t,u){return 3*v(t,u)*n*n+2*s(t,u)*n+w(t)}function b(n,t,f,c,v){var s,w,y=0,b=t,h=f;do{(s=l(w=b+(h-b)/2,c,v)-n)>0?h=w:b=w}while(Math.abs(s)>u&&++y<o);return w}function h(t,u,o,f){for(var c=u,v=0;v<n;++v){var s=y(c,o,f);if(0===s)return c;c-=(l(c,o,f)-t)/s}return c}m.exports=function(n,u,o,v){if(!(n>=0&&n<=1&&o>=0&&o<=1))throw new Error('bezier x values must be in [0, 1] range');var s=c?new Float32Array(11):new Array(11);if(n!==u||o!==v)for(var w=0;w<11;++w)s[w]=l(w*f,n,o);function A(u){for(var c=0,v=1;10!==v&&s[v]<=u;++v)c+=f;var w=c+(u-s[--v])/(s[v+1]-s[v])*f,l=y(w,n,o);return l>=t?h(u,w,n,o):0===l?w:b(u,c,c+f,n,o)}return function(t){return n===u&&o===v?t:0===t?0:1===t?1:l(A(t),u,v)}}},245,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),p=r(d[4]),c=r(d[5]),_=r(d[6]).AnimatedEvent,h=r(d[7]),l=r(d[8]),v=r(d[9]),u=r(d[10]);m.exports=function(f,N){u('function'!=typeof f||f.prototype&&f.prototype.isReactComponent,"`createAnimatedComponent` does not support stateless functional components; use a class component instead.");var k=(function(v){function u(t){var o;return n(this,u),(o=s(this,p(u).call(this,t)))._invokeAnimatedPropsCallbackOnMount=!1,o._eventDetachers=[],o._animatedPropsCallback=function(){if(null==o._component)o._invokeAnimatedPropsCallbackOnMount=!0;else if(u.__skipSetNativeProps_FOR_TESTS_ONLY||'function'!=typeof o._component.setNativeProps)o.forceUpdate();else{if(o._propsAnimated.__isNative)throw new Error("Attempting to run JS driven animation on animated node that has been moved to \"native\" earlier by starting an animation with `useNativeDriver: true`");o._component.setNativeProps(o._propsAnimated.__getAnimatedValue())}},o._setComponentRef=function(t){o._prevComponent=o._component,o._component=t},o}return c(u,v),o(u,[{key:"componentWillUnmount",value:function(){this._propsAnimated&&this._propsAnimated.__detach(),this._detachNativeEvents()}},{key:"setNativeProps",value:function(t){this._component.setNativeProps(t)}},{key:"UNSAFE_componentWillMount",value:function(){this._attachProps(this.props)}},{key:"componentDidMount",value:function(){this._invokeAnimatedPropsCallbackOnMount&&(this._invokeAnimatedPropsCallbackOnMount=!1,this._animatedPropsCallback()),this._propsAnimated.setNativeView(this._component),this._attachNativeEvents()}},{key:"_attachNativeEvents",value:function(){var t,n=this,o=(null==(t=this._component)?void 0:t.getScrollableNode)?this._component.getScrollableNode():this._component,s=function(t){var s=n.props[t];s instanceof _&&s.__isNative&&(s.__attach(o,t),n._eventDetachers.push(function(){return s.__detach(o,t)}))};for(var p in this.props)s(p)}},{key:"_detachNativeEvents",value:function(){this._eventDetachers.forEach(function(t){return t()}),this._eventDetachers=[]}},{key:"_attachProps",value:function(t){var n=this._propsAnimated;this._propsAnimated=new h(t,this._animatedPropsCallback),n&&n.__detach()}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){this._attachProps(t)}},{key:"componentDidUpdate",value:function(t){this._component!==this._prevComponent&&this._propsAnimated.setNativeView(this._component),this._component===this._prevComponent&&t===this.props||(this._detachNativeEvents(),this._attachNativeEvents())}},{key:"render",value:function(){var n=this._propsAnimated.__getValue();return l.createElement(f,t({},N,n,{ref:this._setComponentRef,collapsable:!this._propsAnimated.__isNative&&n.collapsable}))}},{key:"getNode",value:function(){return this._component}}]),u})(l.Component);k.__skipSetNativeProps_FOR_TESTS_ONLY=!1;var y=f.propTypes;return k.propTypes={style:function(t,n,o){if(y)for(var s in v)y[s]||void 0===t[s]||console.warn('You are setting the style `{ '+s+": ... }` as a prop. You should nest it in a style object. E.g. `{ style: { "+s+': ... } }`')}},k}},246,[24,4,5,6,9,10,218,233,59,83,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]);m.exports=o(t,{scrollEventThrottle:1e-4})},247,[248,246]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),u=r(d[5]),c=r(d[6]),f=r(d[7]),p=(r(d[8]),r(d[9])),h=r(d[10]),C=r(d[11]),v=r(d[12]),y=r(d[13]),b=r(d[14]),_=f({},v.defaultProps,{numColumns:1,removeClippedSubviews:!1}),w=(function(_){function w(t){var u;return o(this,w),(u=s(this,l(w).call(this,t)))._virtualizedListPairs=[],u._captureRef=function(t){u._listRef=t},u._getItem=function(t,n){var o=u.props.numColumns;if(o>1){for(var s=[],l=0;l<o;l++){var c=t[n*o+l];null!=c&&s.push(c)}return s}return t[n]},u._getItemCount=function(t){return t?Math.ceil(t.length/u.props.numColumns):0},u._keyExtractor=function(t,n){var o=u.props,s=o.keyExtractor,l=o.numColumns;return l>1?(b(Array.isArray(t),"FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.",l),t.map(function(t,o){return s(t,n*l+o)}).join(':')):s(t,n)},u._renderer=function(){var t=u.props,o=t.ListItemComponent,s=t.renderItem,l=t.numColumns,c=t.columnWrapperStyle,f=function(t){return o?h.createElement(o,t):s?s(t):null};return n({},o?'ListItemComponent':'renderItem',function(t){if(l>1){var n=t.item,o=t.index;return b(Array.isArray(n),'Expected array of items with numColumns > 1'),h.createElement(C,{style:y.compose(I.row,c)},n.map(function(n,s){var u=f({item:n,index:o*l+s,separators:t.separators});return null!=u?h.createElement(h.Fragment,{key:s},u):null}))}return f(t)})},u._checkProps(u.props),u.props.viewabilityConfigCallbackPairs?u._virtualizedListPairs=u.props.viewabilityConfigCallbackPairs.map(function(t){return{viewabilityConfig:t.viewabilityConfig,onViewableItemsChanged:u._createOnViewableItemsChanged(t.onViewableItemsChanged)}}):u.props.onViewableItemsChanged&&u._virtualizedListPairs.push({viewabilityConfig:u.props.viewabilityConfig,onViewableItemsChanged:u._createOnViewableItemsChanged(u.props.onViewableItemsChanged)}),u}return c(w,_),u(w,[{key:"scrollToEnd",value:function(t){this._listRef&&this._listRef.scrollToEnd(t)}},{key:"scrollToIndex",value:function(t){this._listRef&&this._listRef.scrollToIndex(t)}},{key:"scrollToItem",value:function(t){this._listRef&&this._listRef.scrollToItem(t)}},{key:"scrollToOffset",value:function(t){this._listRef&&this._listRef.scrollToOffset(t)}},{key:"recordInteraction",value:function(){this._listRef&&this._listRef.recordInteraction()}},{key:"flashScrollIndicators",value:function(){this._listRef&&this._listRef.flashScrollIndicators()}},{key:"getScrollResponder",value:function(){if(this._listRef)return this._listRef.getScrollResponder()}},{key:"getScrollableNode",value:function(){if(this._listRef)return this._listRef.getScrollableNode()}},{key:"setNativeProps",value:function(t){this._listRef&&this._listRef.setNativeProps(t)}}]),u(w,[{key:"componentDidUpdate",value:function(t){b(t.numColumns===this.props.numColumns,"Changing numColumns on the fly is not supported. Change the key prop on FlatList when changing the number of columns to force a fresh render of the component."),b(t.onViewableItemsChanged===this.props.onViewableItemsChanged,'Changing onViewableItemsChanged on the fly is not supported'),b(!p(t.viewabilityConfig,this.props.viewabilityConfig),'Changing viewabilityConfig on the fly is not supported'),b(t.viewabilityConfigCallbackPairs===this.props.viewabilityConfigCallbackPairs,'Changing viewabilityConfigCallbackPairs on the fly is not supported'),this._checkProps(this.props)}},{key:"_checkProps",value:function(t){var n=t.getItem,o=t.getItemCount,s=t.horizontal,l=t.numColumns,u=t.columnWrapperStyle,c=t.onViewableItemsChanged,f=t.viewabilityConfigCallbackPairs;b(!n&&!o,'FlatList does not support custom data formats.'),l>1?b(!s,'numColumns does not support horizontal.'):b(!u,'columnWrapperStyle not supported for single column lists'),b(!(c&&f),"FlatList does not support setting both onViewableItemsChanged and viewabilityConfigCallbackPairs.")}},{key:"_pushMultiColumnViewable",value:function(t,n){var o=this.props,s=o.numColumns,l=o.keyExtractor;n.item.forEach(function(o,u){b(null!=n.index,'Missing inde
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),o=r(d[2]),n=r(d[3]),l=r(d[4]),h=r(d[5]),c=r(d[6]),p=r(d[7]),u=r(d[8]),f=r(d[9]),_=r(d[10]),v=r(d[11]),y=r(d[12]),C=r(d[13]),L=r(d[14]),S=r(d[15]),b=r(d[16]),M=r(d[17]),I=r(d[18]),x=(r(d[19]),r(d[20])),R=r(d[21]),k=(r(d[22]),r(d[23]).computeWindowedRenderLimits),E=!1,w='',T=(function(v){function T(t,c){var p;n(this,T),(p=l(this,h(T).call(this,t,c)))._getScrollMetrics=function(){return p._scrollMetrics},p._getOutermostParentListRef=function(){return p._isNestedWithSameOrientation()?p.context.virtualizedList.getOutermostParentListRef():u(u(p))},p._getNestedChildState=function(t){var s=p._nestedChildLists.get(t);return s&&s.state},p._registerAsNestedChild=function(t){var s=p._cellKeysToChildListKeys.get(t.cellKey)||new Set;s.add(t.key),p._cellKeysToChildListKeys.set(t.cellKey,s);var o=p._nestedChildLists.get(t.key);o&&null!==o.ref&&console.error("A VirtualizedList contains a cell which itself contains more than one VirtualizedList of the same orientation as the parent list. You must pass a unique listKey prop to each sibling list."),p._nestedChildLists.set(t.key,{ref:t.ref,state:null}),p._hasInteracted&&t.ref.recordInteraction()},p._unregisterAsNestedChild=function(t){p._nestedChildLists.set(t.key,{ref:null,state:t.state})},p._onUpdateSeparators=function(t,s){t.forEach(function(t){var o=null!=t&&p._cellRefs[t];o&&o.updateSeparatorProps(s)})},p._averageCellLength=0,p._cellKeysToChildListKeys=new Map,p._cellRefs={},p._frames={},p._footerLength=0,p._hasDataChangedSinceEndReached=!0,p._hasDoneInitialScroll=!1,p._hasInteracted=!1,p._hasMore=!1,p._hasWarned={},p._headerLength=0,p._hiPriInProgress=!1,p._highestMeasuredFrameIndex=0,p._indicesToKeys=new Map,p._nestedChildLists=new Map,p._offsetFromParentVirtualizedList=0,p._prevParentOffset=0,p._scrollMetrics={contentLength:0,dOffset:0,dt:10,offset:0,timestamp:0,velocity:0,visibleLength:0},p._scrollRef=null,p._sentEndForContentLength=0,p._totalCellLength=0,p._totalCellsMeasured=0,p._viewabilityTuples=[],p._captureScrollRef=function(t){p._scrollRef=t},p._defaultRenderScrollComponent=function(t){var o=t.onRefresh;return p._isNestedWithSameOrientation()?y.createElement(M,t):o?(R('boolean'==typeof t.refreshing,'`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `'+JSON.stringify(t.refreshing)+'`'),y.createElement(S,s({},t,{refreshControl:null==t.refreshControl?y.createElement(L,{refreshing:t.refreshing,onRefresh:o,progressViewOffset:t.progressViewOffset}):t.refreshControl}))):y.createElement(S,t)},p._onCellUnmount=function(t){var s=p._frames[t];s&&(p._frames[t]=o({},s,{inLayout:!1}))},p._onLayout=function(t){p._isNestedWithSameOrientation()?p.measureLayoutRelativeToContainingList():p._scrollMetrics.visibleLength=p._selectLength(t.nativeEvent.layout),p.props.onLayout&&p.props.onLayout(t),p._scheduleCellsToRenderUpdate(),p._maybeCallOnEndReached()},p._onLayoutEmpty=function(t){p.props.onLayout&&p.props.onLayout(t)},p._onLayoutFooter=function(t){p._footerLength=p._selectLength(t.nativeEvent.layout)},p._onLayoutHeader=function(t){p._headerLength=p._selectLength(t.nativeEvent.layout)},p._onContentSizeChange=function(t,s){t>0&&s>0&&null!=p.props.initialScrollIndex&&p.props.initialScrollIndex>0&&!p._hasDoneInitialScroll&&(p.scrollToIndex({animated:!1,index:p.props.initialScrollIndex}),p._hasDoneInitialScroll=!0),p.props.onContentSizeChange&&p.props.onContentSizeChange(t,s),p._scrollMetrics.contentLength=p._selectLength({height:s,width:t}),p._scheduleCellsToRenderUpdate(),p._maybeCallOnEndReached()},p._convertParentScrollMetrics=function(t){var s=t.offset-p._offsetFromParentVirtualizedList,o=t.visibleLength,n=s-p._scrollMetrics.offset;return{visibleLength:o,contentLength:p._scrollMetrics.contentLength,offset:s,dOffset:n}},p._onScroll=function(t){p._nestedChildLists.forEach(function(s){s.ref&&s.ref._onScroll(t)}),p.props.onScroll&&p.props.onScroll(t);var s=t.timeStamp,o=p._selectLength(t.nativeEvent.layoutMeasurement),n=p._selectLength(t.nativeEvent.contentSize),l=p._selectOffset(t.nativeEvent.contentOf
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),l=r(d[2]),s=(function(){function s(n,l){t(this,s),this._delay=l,this._callback=n}return n(s,[{key:"dispose",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{abort:!1};this._taskHandle&&(this._taskHandle.cancel(),t.abort||this._callback(),this._taskHandle=null)}},{key:"schedule",value:function(){var t=this;if(!this._taskHandle){var n=setTimeout(function(){t._taskHandle=l.runAfterInteractions(function(){t._taskHandle=null,t._callback()})},this._delay);this._taskHandle={cancel:function(){return clearTimeout(n)}}}}}]),s})();m.exports=s},250,[4,5,225]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),l=r(d[3]),_=r(d[4]),h=function t(){s(this,t),this.any_blank_count=0,this.any_blank_ms=0,this.any_blank_speed_sum=0,this.mostly_blank_count=0,this.mostly_blank_ms=0,this.pixels_blank=0,this.pixels_sampled=0,this.pixels_scrolled=0,this.total_time_spent=0,this.sample_count=0},o=[],u=10,f=null,c=(function(){function c(t){s(this,c),this._anyBlankStartTime=null,this._enabled=!1,this._info=new h,this._mostlyBlankStartTime=null,this._samplesStartTime=null,this._getFrameMetrics=t,this._enabled=(f||0)>Math.random(),this._resetData()}return n(c,null,[{key:"addListener",value:function(t){return _(null!==f,'Call `FillRateHelper.setSampleRate` before `addListener`.'),o.push(t),{remove:function(){o=o.filter(function(n){return t!==n})}}}},{key:"setSampleRate",value:function(t){f=t}},{key:"setMinSampleCount",value:function(t){u=t}}]),n(c,[{key:"activate",value:function(){this._enabled&&null==this._samplesStartTime&&(this._samplesStartTime=l())}},{key:"deactivateAndFlush",value:function(){if(this._enabled){var n=this._samplesStartTime;if(null!=n)if(this._info.sample_count<u)this._resetData();else{var s=l()-n,_=t({},this._info,{total_time_spent:s});o.forEach(function(t){return t(_)}),this._resetData()}}}},{key:"computeBlankness",value:function(t,n,s){if(!this._enabled||0===t.getItemCount(t.data)||null==this._samplesStartTime)return 0;var _=s.dOffset,h=s.offset,o=s.velocity,u=s.visibleLength;this._info.sample_count++,this._info.pixels_sampled+=Math.round(u),this._info.pixels_scrolled+=Math.round(Math.abs(_));var f=Math.round(1e3*Math.abs(o)),c=l();null!=this._anyBlankStartTime&&(this._info.any_blank_ms+=c-this._anyBlankStartTime),this._anyBlankStartTime=null,null!=this._mostlyBlankStartTime&&(this._info.mostly_blank_ms+=c-this._mostlyBlankStartTime),this._mostlyBlankStartTime=null;for(var k=0,y=n.first,p=this._getFrameMetrics(y);y<=n.last&&(!p||!p.inLayout);)p=this._getFrameMetrics(y),y++;p&&y>0&&(k=Math.min(u,Math.max(0,p.offset-h)));for(var b=0,v=n.last,S=this._getFrameMetrics(v);v>=n.first&&(!S||!S.inLayout);)S=this._getFrameMetrics(v),v--;if(S&&v<t.getItemCount(t.data)-1){var M=S.offset+S.length;b=Math.min(u,Math.max(0,h+u-M))}var T=Math.round(k+b),B=T/u;return B>0?(this._anyBlankStartTime=c,this._info.any_blank_speed_sum+=f,this._info.any_blank_count++,this._info.pixels_blank+=T,B>.5&&(this._mostlyBlankStartTime=c,this._info.mostly_blank_count++)):(f<.01||Math.abs(_)<1)&&this.deactivateAndFlush(),B}},{key:"enabled",value:function(){return this._enabled}},{key:"_resetData",value:function(){this._anyBlankStartTime=null,this._info=new h,this._mostlyBlankStartTime=null,this._samplesStartTime=null}}]),c})();m.exports=c},251,[53,5,4,113,18]);
__d(function(g,r,i,a,m,e,d){'use strict';var s,t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),f=t(r(d[3])),h=t(r(d[4])),p=t(r(d[5])),l=t(r(d[6])),u=t(r(d[7])),c=(t(r(d[8])),t(r(d[9]))),v=(r(d[10]),r(d[11]));r(d[12]);s={SIZE:{}};var R=(function(s){function t(){var s,n;(0,f.default)(this,t);for(var o=arguments.length,h=new Array(o),u=0;u<o;u++)h[u]=arguments[u];return(n=(0,p.default)(this,(s=(0,l.default)(t)).call.apply(s,[this].concat(h))))._lastNativeRefreshing=!1,n._onRefresh=function(){n._lastNativeRefreshing=!0,n.props.onRefresh&&n.props.onRefresh(),n.forceUpdate()},n}return(0,u.default)(t,s),(0,h.default)(t,[{key:"componentDidMount",value:function(){this._lastNativeRefreshing=this.props.refreshing}},{key:"componentDidUpdate",value:function(s){this.props.refreshing!==s.refreshing?this._lastNativeRefreshing=this.props.refreshing:this.props.refreshing!==this._lastNativeRefreshing&&this._setNativePropsOnRef&&(this._setNativePropsOnRef({refreshing:this.props.refreshing}),this._lastNativeRefreshing=this.props.refreshing)}},{key:"render",value:function(){var s=this,t=this.props,f=(t.enabled,t.colors,t.progressBackgroundColor,t.size,t.progressViewOffset,(0,o.default)(t,["enabled","colors","progressBackgroundColor","size","progressViewOffset"]));return v.createElement(c.default,(0,n.default)({},f,{ref:function(t){return s._setNativePropsOnRef=t?t.setNativeProps.bind(t):null},onRefresh:this._onRefresh}))}}]),t})(v.Component);R.SIZE=s.SIZE,m.exports=R},252,[3,24,55,4,5,6,9,10,253,254,57,59,213]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('AndroidSwipeRefreshLayout');e.default=u},253,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,t(r(d[1])).default)('PullToRefreshView',{paperComponentName:'RCTRefreshControl'});e.default=o},254,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,n,o=r(d[0]),l=r(d[1]),s=r(d[2]),c=r(d[3]),p=r(d[4]),h=r(d[5]),u=r(d[6]),f=r(d[7]),R=r(d[8]),y=r(d[9]),_=r(d[10]),v=r(d[11]),S=r(d[12]),H=r(d[13]),w=r(d[14]),V=(r(d[15]),r(d[16]),r(d[17]),r(d[18])),k=r(d[19]),C=r(d[20]),T=r(d[21]);r(d[22]);function A(t){var n=f({},S.Mixin);for(var o in n)'function'==typeof n[o]&&(n[o]=n[o].bind(t));return n}t=C('RCTScrollView'),n=C('RCTScrollContentView');var E=_.createContext(null),x=Object.freeze({horizontal:!0}),M=Object.freeze({horizontal:!1}),I=(function(w){function C(t){var n;for(var o in l(this,C),(n=c(this,p(C).call(this,t)))._scrollResponder=A(u(u(n))),n._scrollAnimatedValue=new R.Value(0),n._scrollAnimatedValueAttachment=null,n._stickyHeaderRefs=new Map,n._headerLayoutYs=new Map,n.state=f({layoutHeight:null},S.Mixin.scrollResponderMixinGetInitialState()),n._handleScroll=function(t){n._scrollResponder.scrollResponderHandleScroll(t)},n._handleLayout=function(t){!0===n.props.invertStickyHeaders&&n.setState({layoutHeight:t.nativeEvent.layout.height}),n.props.onLayout&&n.props.onLayout(t)},n._handleContentOnLayout=function(t){var o=t.nativeEvent.layout,l=o.width,s=o.height;n.props.onContentSizeChange&&n.props.onContentSizeChange(l,s)},n._scrollViewRef=null,n._setScrollViewRef=function(t){n._scrollViewRef=t},n._innerViewRef=null,n._setInnerViewRef=function(t){n._innerViewRef=t},S.Mixin)'function'==typeof S.Mixin[o]&&o.startsWith('scrollResponder')&&(u(u(n))[o]=S.Mixin[o].bind(u(u(n))));return Object.keys(S.Mixin).filter(function(t){return'function'!=typeof S.Mixin[t]}).forEach(function(t){u(u(n))[t]=S.Mixin[t]}),n}return h(C,w),s(C,[{key:"UNSAFE_componentWillMount",value:function(){this._scrollResponder.UNSAFE_componentWillMount(),this._scrollAnimatedValue=new R.Value(this.props.contentOffset?this.props.contentOffset.y:0),this._scrollAnimatedValue.setOffset(this.props.contentInset&&this.props.contentInset.top||0),this._stickyHeaderRefs=new Map,this._headerLayoutYs=new Map}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){var n=this.props.contentInset?this.props.contentInset.top:0,o=t.contentInset?t.contentInset.top:0;n!==o&&this._scrollAnimatedValue.setOffset(o||0)}},{key:"componentDidMount",value:function(){this._updateAnimatedNodeAttachment()}},{key:"componentDidUpdate",value:function(){this._updateAnimatedNodeAttachment()}},{key:"componentWillUnmount",value:function(){this._scrollResponder.componentWillUnmount(),this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach()}},{key:"setNativeProps",value:function(t){this._scrollViewRef&&this._scrollViewRef.setNativeProps(t)}},{key:"getScrollResponder",value:function(){return this}},{key:"getScrollableNode",value:function(){return v.findNodeHandle(this._scrollViewRef)}},{key:"getInnerViewNode",value:function(){return v.findNodeHandle(this._innerViewRef)}},{key:"getNativeScrollRef",value:function(){return this._scrollViewRef}},{key:"scrollTo",value:function(t,n,o){var l,s,c;'number'==typeof t?(console.warn("`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead."),s=t,l=n,c=o):t&&(s=t.y,l=t.x,c=t.animated),this._scrollResponder.scrollResponderScrollTo({x:l||0,y:s||0,animated:!1!==c})}},{key:"scrollToEnd",value:function(t){var n=!1!==(t&&t.animated);this._scrollResponder.scrollResponderScrollToEnd({animated:n})}},{key:"scrollWithoutAnimationTo",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;console.warn('`scrollWithoutAnimationTo` is deprecated. Use `scrollTo` instead'),this.scrollTo({x:n,y:t,animated:!1})}},{key:"flashScrollIndicators",value:function(){this._scrollResponder.scrollResponderFlashScrollIndicators()}},{key:"_getKeyForIndex",value:function(t,n){var o=n[t];return o&&o.key}},{key:"_updateAnimatedNodeAttachment",value:function(){this._scrollAnimatedValueAttachment&&this._scrollAnimatedValueAttachment.detach(),this.props.stickyHeaderIndices&&this.props.stickyHeaderIndices.length>0&&(this._scrollAnimatedValueAttachment=R.a
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),s=r(d[1]),n=r(d[2]),l=r(d[3]),t=r(d[4]),c=r(d[5]),p=r(d[6]),h=r(d[7]),u=r(d[8]),S=r(d[9]),b=r(d[10]).ScrollViewManager,R={Mixin:{_subscriptionKeyboardWillShow:null,_subscriptionKeyboardWillHide:null,_subscriptionKeyboardDidShow:null,_subscriptionKeyboardDidHide:null,scrollResponderMixinGetInitialState:function(){return{isTouching:!1,lastMomentumScrollBeginTime:0,lastMomentumScrollEndTime:0,observedScrollSinceBecomingResponder:!1,becameResponderWhileAnimating:!1}},scrollResponderHandleScrollShouldSetResponder:function(){return!0!==this.props.disableScrollViewPanResponder&&this.state.isTouching},scrollResponderHandleStartShouldSetResponder:function(o){if(!0===this.props.disableScrollViewPanResponder)return!1;var s=t.currentlyFocusedField();return'handled'===this.props.keyboardShouldPersistTaps&&null!=s&&o.target!==s},scrollResponderHandleStartShouldSetResponderCapture:function(o){if(this.scrollResponderIsAnimating())return!0;if(!0===this.props.disableScrollViewPanResponder)return!1;var s=t.currentlyFocusedField(),n=this.props.keyboardShouldPersistTaps;return!(n&&'never'!==n||null==s||!o.target||t.isTextInput(o.target))},scrollResponderHandleResponderReject:function(){},scrollResponderHandleTerminationRequest:function(){return!this.state.observedScrollSinceBecomingResponder},scrollResponderHandleTouchEnd:function(o){var s=o.nativeEvent;this.state.isTouching=0!==s.touches.length,this.props.onTouchEnd&&this.props.onTouchEnd(o)},scrollResponderHandleTouchCancel:function(o){this.state.isTouching=!1,this.props.onTouchCancel&&this.props.onTouchCancel(o)},scrollResponderHandleResponderRelease:function(o){this.props.onResponderRelease&&this.props.onResponderRelease(o);var s=t.currentlyFocusedField();!0===this.props.keyboardShouldPersistTaps||'always'===this.props.keyboardShouldPersistTaps||null==s||o.target===s||this.state.observedScrollSinceBecomingResponder||this.state.becameResponderWhileAnimating||(this.props.onScrollResponderKeyboardDismissed&&this.props.onScrollResponderKeyboardDismissed(o),t.blurTextInput(s))},scrollResponderHandleScroll:function(o){this.state.observedScrollSinceBecomingResponder=!0,this.props.onScroll&&this.props.onScroll(o)},scrollResponderHandleResponderGrant:function(o){this.state.observedScrollSinceBecomingResponder=!1,this.props.onResponderGrant&&this.props.onResponderGrant(o),this.state.becameResponderWhileAnimating=this.scrollResponderIsAnimating()},scrollResponderHandleScrollBeginDrag:function(o){s.beginScroll(),this.props.onScrollBeginDrag&&this.props.onScrollBeginDrag(o)},scrollResponderHandleScrollEndDrag:function(o){var n=o.nativeEvent.velocity;this.scrollResponderIsAnimating()||n&&(0!==n.x||0!==n.y)||s.endScroll(),this.props.onScrollEndDrag&&this.props.onScrollEndDrag(o)},scrollResponderHandleMomentumScrollBegin:function(o){this.state.lastMomentumScrollBeginTime=u(),this.props.onMomentumScrollBegin&&this.props.onMomentumScrollBegin(o)},scrollResponderHandleMomentumScrollEnd:function(o){s.endScroll(),this.state.lastMomentumScrollEndTime=u(),this.props.onMomentumScrollEnd&&this.props.onMomentumScrollEnd(o)},scrollResponderHandleTouchStart:function(o){this.state.isTouching=!0,this.props.onTouchStart&&this.props.onTouchStart(o)},scrollResponderHandleTouchMove:function(o){this.props.onTouchMove&&this.props.onTouchMove(o)},scrollResponderIsAnimating:function(){return u()-this.state.lastMomentumScrollEndTime<16||this.state.lastMomentumScrollEndTime<this.state.lastMomentumScrollBeginTime},scrollResponderGetScrollableNode:function(){return this.getScrollableNode?this.getScrollableNode():l.findNodeHandle(this)},scrollResponderScrollTo:function(o,s,n){if('number'==typeof o)console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');else{var l=o||{};o=l.x,s=l.y,n=l.animated}c.dispatchViewManagerCommand(h(this.scrollResponderGetScrollableNode()),c.getViewManagerConfig('RCTScrollView').Commands.scrollTo,[o||0,s||0,!1!==n])},scrollResponderScrollToEnd:function(o){var s=!1!=
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),o=r(d[2]),l={setGlobalOptions:function(l){if(void 0!==l.debug&&o(t.default,'Trying to debug FrameRateLogger without the native module!'),t.default){var u={debug:!!l.debug,reportStackTraces:!!l.reportStackTraces};t.default.setGlobalOptions(u)}},setContext:function(o){t.default&&t.default.setContext(o)},beginScroll:function(){t.default&&t.default.beginScroll()},endScroll:function(){t.default&&t.default.endScroll()}};m.exports=l},257,[3,258,16]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).get('FrameRateLogger');e.default=o},258,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0])(r(d[1])),o=r(d[2]),t=r(d[3]),u=r(d[4]),s=r(d[5]),c={addListener:function(n,o){s(!1,'Dummy method used for documentation')},removeListener:function(n,o){s(!1,'Dummy method used for documentation')},removeAllListeners:function(n){s(!1,'Dummy method used for documentation')},dismiss:function(){s(!1,'Dummy method used for documentation')},scheduleLayoutAnimation:function(n){s(!1,'Dummy method used for documentation')}};(c=new t(n.default)).dismiss=u,c.scheduleLayoutAnimation=function(n){var t=n.duration,u=n.easing;null!=t&&0!==t&&o.configureNext({duration:t,update:{duration:t,type:null!=u&&o.Types[u]||'keyboard'}})},m.exports=c},259,[3,260,261,125,262,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('KeyboardObserver');e.default=u},260,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0])(r(d[1])),t=r(d[2]);function s(s,o){var p;n.default.isTesting||t.configureNextLayoutAnimation(s,null!=(p=o)?p:function(){},function(){})}function o(n,t,s){return{duration:n,create:{type:t,property:s},update:{type:t},delete:{type:t,property:s}}}var p={easeInEaseOut:o(300,'easeInEaseOut','opacity'),linear:o(500,'linear','opacity'),spring:{duration:700,create:{type:'linear',property:'opacity'},update:{type:'spring',springDamping:.4},delete:{type:'linear',property:'opacity'}}},c={configureNext:s,create:o,Types:Object.freeze({spring:'spring',linear:'linear',easeInEaseOut:'easeInEaseOut',easeIn:'easeIn',easeOut:'easeOut',keyboard:'keyboard'}),Properties:Object.freeze({opacity:'opacity',scaleX:'scaleX',scaleY:'scaleY',scaleXY:'scaleXY'}),checkConfig:function(){console.error('LayoutAnimation.checkConfig(...) has been disabled.')},Presets:p,easeInEaseOut:s.bind(null,p.easeInEaseOut),linear:s.bind(null,p.linear),spring:s.bind(null,p.spring)};m.exports=c},261,[3,57,77]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=function(){t.blurTextInput(t.currentlyFocusedField())}},262,[165]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),s=r(d[4]),l=r(d[5]),p=r(d[6]),h=r(d[7]),y=r(d[8]),c=l.createAnimatedComponent(y),v=(function(l){function h(){var n,s;t(this,h);for(var l=arguments.length,y=new Array(l),c=0;c<l;c++)y[c]=arguments[c];return(s=o(this,(n=u(h)).call.apply(n,[this].concat(y)))).state={measured:!1,layoutY:0,layoutHeight:0,nextHeaderLayoutY:s.props.nextHeaderLayoutY},s._onLayout=function(t){s.setState({measured:!0,layoutY:t.nativeEvent.layout.y,layoutHeight:t.nativeEvent.layout.height}),s.props.onLayout(t);var n=p.Children.only(s.props.children);n.props.onLayout&&n.props.onLayout(t)},s}return s(h,l),n(h,[{key:"setNextHeaderY",value:function(t){this.setState({nextHeaderLayoutY:t})}},{key:"render",value:function(){var t=this.props,n=t.inverted,o=t.scrollViewHeight,u=this.state,s=u.measured,l=u.layoutHeight,h=u.layoutY,y=u.nextHeaderLayoutY,v=[-1,0],L=[0,0];if(s)if(n){if(null!=o){var H=h+l-o;if(H>0){v.push(H),L.push(0),v.push(H+1),L.push(1);var Y=(y||0)-l-o;Y>H&&(v.push(Y,Y+1),L.push(Y-H,Y-H))}}}else{v.push(h),L.push(0);var x=(y||0)-l;x>=h?(v.push(x,x+1),L.push(x-h,x-h)):(v.push(h+1),L.push(1))}var C=this.props.scrollAnimatedValue.interpolate({inputRange:v,outputRange:L}),E=p.Children.only(this.props.children);return p.createElement(c,{collapsable:!1,onLayout:this._onLayout,style:[E.props.style,f.header,{transform:[{translateY:C}]}]},p.cloneElement(E,{style:f.fill,onLayout:void 0}))}}]),h})(p.Component),f=h.create({header:{zIndex:10},fill:{flex:1}});m.exports=v},263,[4,5,6,9,10,227,59,62,90]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]);m.exports=function(t){return'normal'===t?.998:'fast'===t?.99:t}},264,[57]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(Object.create(null),{margin:!0,marginHorizontal:!0,marginVertical:!0,marginBottom:!0,marginTop:!0,marginLeft:!0,marginRight:!0,flex:!0,flexGrow:!0,flexShrink:!0,flexBasis:!0,alignSelf:!0,height:!0,minHeight:!0,maxHeight:!0,width:!0,minWidth:!0,maxWidth:!0,position:!0,left:!0,right:!0,bottom:!0,top:!0,transform:!0});m.exports=function(n){var o={},f={};return n&&Object.keys(n).forEach(function(h){var l=n[h];t[h]?f[h]=l:o[h]=l}),{outer:f,inner:o}}},265,[24]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),l=r(d[4]),h=(function(){function h(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{viewAreaCoveragePercentThreshold:0};s(this,h),this._hasInteracted=!1,this._timers=new Set,this._viewableIndices=[],this._viewableItems=new Map,this._config=t}return o(h,[{key:"dispose",value:function(){this._timers.forEach(clearTimeout)}},{key:"computeViewableItems",value:function(t,n,s,o,h){var c=this._config,f=c.itemVisiblePercentThreshold,v=c.viewAreaCoveragePercentThreshold,b=null!=v,_=b?v:f;l(null!=_&&null!=f!=(null!=v),'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');var w=[];if(0===t)return w;var y=-1,I=h||{first:0,last:t-1},p=I.first,k=I.last;if(k>=t)return console.warn('Invalid render range computing viewability '+JSON.stringify({renderRange:h,itemCount:t})),[];for(var S=p;S<=k;S++){var T=o(S);if(T){var A=T.offset-n,V=A+T.length;if(A<s&&V>0)y=S,u(b,_,A,V,s,T.length)&&w.push(S);else if(y>=0)break}}return w}},{key:"onUpdate",value:function(t,n,s,o,l,h,u){var c=this;if((!this._config.waitForInteraction||this._hasInteracted)&&0!==t&&o(0)){var f=[];if(t&&(f=this.computeViewableItems(t,n,s,o,u)),this._viewableIndices.length!==f.length||!this._viewableIndices.every(function(t,n){return t===f[n]}))if(this._viewableIndices=f,this._config.minimumViewTime){var v=setTimeout(function(){c._timers.delete(v),c._onUpdateSync(f,h,l)},this._config.minimumViewTime);this._timers.add(v)}else this._onUpdateSync(f,h,l)}}},{key:"resetViewableIndices",value:function(){this._viewableIndices=[]}},{key:"recordInteraction",value:function(){this._hasInteracted=!0}},{key:"_onUpdateSync",value:function(s,o,l){var h=this;s=s.filter(function(t){return h._viewableIndices.includes(t)});var u=this._viewableItems,c=new Map(s.map(function(t){var n=l(t,!0);return[n.key,n]})),f=[],v=c,b=Array.isArray(v),_=0;for(v=b?v:v["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var w;if(b){if(_>=v.length)break;w=v[_++]}else{if((_=v.next()).done)break;w=_.value}var y=n(w,2),I=y[0],p=y[1];u.has(I)||f.push(p)}var k=u,S=Array.isArray(k),T=0;for(k=S?k:k["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var A;if(S){if(T>=k.length)break;A=k[T++]}else{if((T=k.next()).done)break;A=T.value}var V=n(A,2),x=V[0],M=V[1];c.has(x)||f.push(t({},M,{isViewable:!1}))}f.length>0&&(this._viewableItems=c,o({viewableItems:Array.from(c.values()),changed:f,viewabilityConfig:this._config}))}}]),h})();function u(t,n,s,o,l,h){if(f(s,o,l))return!0;var u=c(s,o,l);return 100*(t?u/l:u/h)>=n}function c(t,n,s){var o=Math.min(n,s)-Math.max(t,0);return Math.max(0,o)}function f(t,n,s){return t>=0&&n<=s&&n>t}m.exports=h},266,[53,25,4,5,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]);function s(t,s,f){for(var l=[],o=0,u=0;u<s;u++)for(var h=f(u),v=h.offset+h.length,c=0;c<t.length;c++)if(null==l[c]&&v>=t[c]&&(l[c]=u,o++,c===t.length-1))return n(o===t.length,'bad offsets input, should be in increasing order: %s',JSON.stringify(t)),l;return l}function f(t,n){return n.last-n.first+1-Math.max(0,1+Math.min(n.last,t.last)-Math.max(n.first,t.first))}var l={computeWindowedRenderLimits:function(n,l,o,u){var h=n.data,v=n.getItemCount,c=n.maxToRenderPerBatch,x=n.windowSize,M=v(h);if(0===M)return l;var w=u.offset,b=u.velocity,p=u.visibleLength,C=Math.max(0,w),O=C+p,y=(x-1)*p,L=b>1?'after':b<-1?'before':'none',R=Math.max(0,C-.5*y),S=Math.max(0,O+.5*y);if(o(M-1).offset<R)return{first:Math.max(0,M-1-c),last:M-1};var B=s([R,C,O,S],n.getItemCount(n.data),o),I=t(B,4),J=I[0],N=I[1],T=I[2],_=I[3];J=null==J?0:J,N=null==N?Math.max(0,J):N,_=null==_?M-1:_;for(var k={first:N,last:T=null==T?Math.min(_,N+c-1):T},z=f(l,k);!(N<=J&&T>=_);){var E=z>=c,F=N<=l.first||N>l.last,P=N>J&&(!E||!F),W=T>=l.last||T<l.first,j=T<_&&(!E||!W);if(E&&!P&&!j)break;!P||'after'===L&&j&&W||(F&&z++,N--),!j||'before'===L&&P&&F||(W&&z++,T++)}if(!(T>=N&&N>=0&&T<M&&N>=J&&T<=_&&N<=k.first&&T>=k.last))throw new Error('Bad window calculation '+JSON.stringify({first:N,last:T,itemCount:M,overscanFirst:J,overscanLast:_,visible:k}));return{first:N,last:T}},elementsThatOverlapOffsets:s,newRangeCount:f};m.exports=l},267,[25,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},268,[269,246]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),u=(r(d[5]),r(d[6])),h=r(d[7]),l=r(d[8]),f=r(d[9]),p=s.ImageViewManager,w=l('RCTImageView');var v=function(n,o){var s,u,l=f(n.source)||{uri:void 0,width:void 0,height:void 0};if(Array.isArray(l))u=h([y.base,n.style])||{},s=l;else{var p=l.width,v=l.height,z=l.uri;u=h([{width:p,height:v},y.base,n.style])||{},s=[l],''===z&&console.warn('source.uri should not be an empty string')}var I=n.resizeMode||u.resizeMode||'cover',b=u.tintColor;if(null!=n.src&&console.warn('The <Image> component requires a `source` property rather than `src`.'),null!=n.children)throw new Error('The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.');return c.createElement(w,t({},n,{ref:o,style:u,resizeMode:I,tintColor:b,source:s}))};(v=c.forwardRef(v)).displayName='Image',v.getSize=function(t,n,o){p.getSize(t,n,o||function(){console.warn('Failed to get size for image: '+t)})},v.getSizeWithHeaders=function(t,n,o,s){return p.getSizeWithHeaders({uri:t,headers:n}).then(function(t){o(t.width,t.height)}).catch(s||function(){console.warn('Failed to get size for image: '+t)})},v.prefetch=function(t){return p.prefetchImage(t)},v.queryCache=function(t){return n.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,n.awrap(p.queryCache(t));case 2:return o.abrupt("return",o.sent);case 3:case"end":return o.stop()}},null,this)},v.resolveAssetSource=f,v.propTypes=o;var y=u.create({base:{overflow:'hidden'}});m.exports=v},269,[24,270,272,23,59,92,62,89,184,179]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])},270,[271]);
__d(function(g,r,i,a,m,e,d){var t=(function(t){"use strict";var n,o=Object.prototype,c=o.hasOwnProperty,u="function"==typeof Symbol?Symbol:{},h=u.iterator||"@@iterator",f=u.asyncIterator||"@@asyncIterator",s=u.toStringTag||"@@toStringTag";function l(t,n,o,c){var u=n&&n.prototype instanceof E?n:E,h=Object.create(u.prototype),f=new A(c||[]);return h._invoke=F(t,o,f),h}function p(t,n,o){try{return{type:"normal",arg:t.call(n,o)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var y="suspendedStart",v="suspendedYield",w="executing",L="completed",x={};function E(){}function b(){}function _(){}var j={};j[h]=function(){return this};var O=Object.getPrototypeOf,k=O&&O(O(R([])));k&&k!==o&&c.call(k,h)&&(j=k);var G=_.prototype=E.prototype=Object.create(j);function N(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function P(t){function n(o,u,h,f){var s=p(t[o],t,u);if("throw"!==s.type){var l=s.arg,y=l.value;return y&&"object"==typeof y&&c.call(y,"__await")?Promise.resolve(y.__await).then(function(t){n("next",t,h,f)},function(t){n("throw",t,h,f)}):Promise.resolve(y).then(function(t){l.value=t,h(l)},function(t){return n("throw",t,h,f)})}f(s.arg)}var o;this._invoke=function(t,c){function u(){return new Promise(function(o,u){n(t,c,o,u)})}return o=o?o.then(u,u):u()}}function F(t,n,o){var c=y;return function(u,h){if(c===w)throw new Error("Generator is already running");if(c===L){if("throw"===u)throw h;return Y()}for(o.method=u,o.arg=h;;){var f=o.delegate;if(f){var s=S(f,o);if(s){if(s===x)continue;return s}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(c===y)throw c=L,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c=w;var l=p(t,n,o);if("normal"===l.type){if(c=o.done?L:v,l.arg===x)continue;return{value:l.arg,done:o.done}}"throw"===l.type&&(c=L,o.method="throw",o.arg=l.arg)}}}function S(t,o){var c=t.iterator[o.method];if(c===n){if(o.delegate=null,"throw"===o.method){if(t.iterator.return&&(o.method="return",o.arg=n,S(t,o),"throw"===o.method))return x;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return x}var u=p(c,t.iterator,o.arg);if("throw"===u.type)return o.method="throw",o.arg=u.arg,o.delegate=null,x;var h=u.arg;return h?h.done?(o[t.resultName]=h.value,o.next=t.nextLoc,"return"!==o.method&&(o.method="next",o.arg=n),o.delegate=null,x):h:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,x)}function T(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function I(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function R(t){if(t){var o=t[h];if(o)return o.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var u=-1,f=function o(){for(;++u<t.length;)if(c.call(t,u))return o.value=t[u],o.done=!1,o;return o.value=n,o.done=!0,o};return f.next=f}}return{next:Y}}function Y(){return{value:n,done:!0}}return b.prototype=G.constructor=_,_.constructor=b,_[s]=b.displayName="GeneratorFunction",t.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===b||"GeneratorFunction"===(n.displayName||n.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,_):(t.__proto__=_,s in t||(t[s]="GeneratorFunction")),t.prototype=Object.create(G),t},t.awrap=function(t){return{__await:t}},N(P.prototype),P.prototype[f]=function(){return this},t.AsyncIterator=P,t.async=function(n,o,c,u){var h=new P(l(n,o,c,u));return t.isGeneratorFunction(o)?h:h.next().then(function(t){return t.done?t.value:h.next()})},N(G),G[s]="Generator",G[h]=function(){return this},G.toString=function(){return"[object Generator]"},t.keys=function(t){var n=[];for(var o in t)n.push(o);return n.reverse(),function o(){for(;n.length;){var c=n.pop();if(c in t)return o.value=c,o.done=!1,o}return o.done=!0,o}},t.values=R,A.prototype={constructor:A,reset:function(t){if(this.prev=0,this.next=0,th
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=r(d[1]),t=r(d[2]),s=r(d[3]),c=r(d[4]);m.exports={style:s(t),source:o,defaultSource:c.oneOfType([c.shape({uri:c.string,width:c.number,height:c.number,scale:c.number}),c.number]),accessible:c.bool,accessibilityLabel:c.node,blurRadius:c.number,capInsets:n,resizeMethod:c.oneOf(['auto','resize','scale']),resizeMode:c.oneOf(['cover','contain','stretch','repeat','center']),testID:c.string,onLayout:c.func,onLoadStart:c.func,onProgress:c.func,onError:c.func,onPartialLoad:c.func,onLoad:c.func,onLoadEnd:c.func}},272,[201,273,67,202,71]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=n.shape({uri:n.string,bundle:n.string,method:n.string,headers:n.objectOf(n.string),body:n.string,cache:n.oneOf(['default','reload','force-cache','only-if-cached']),width:n.number,height:n.number,scale:n.number}),c=n.oneOfType([t,n.number,n.arrayOf(t)]);m.exports=c},273,[71]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]);m.exports=o(t,{scrollEventThrottle:1e-4})},274,[255,246]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]);m.exports=o(t,{scrollEventThrottle:1e-4})},275,[276,246]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),f=r(d[4]),p=r(d[5]),c=r(d[6]),l=(r(d[7]),r(d[8])),u=(r(d[9]),r(d[10])),R=c({},u.defaultProps,{stickySectionHeadersEnabled:!0}),h=(function(c){function R(){var t,s;n(this,R);for(var p=arguments.length,c=new Array(p),l=0;l<p;l++)c[l]=arguments[l];return(s=o(this,(t=f(R)).call.apply(t,[this].concat(c))))._captureRef=function(t){s._wrapperListRef=t},s}return p(R,c),s(R,[{key:"scrollToLocation",value:function(t){null!=this._wrapperListRef&&this._wrapperListRef.scrollToLocation(t)}},{key:"recordInteraction",value:function(){var t=this._wrapperListRef&&this._wrapperListRef.getListRef();t&&t.recordInteraction()}},{key:"flashScrollIndicators",value:function(){var t=this._wrapperListRef&&this._wrapperListRef.getListRef();t&&t.flashScrollIndicators()}},{key:"getScrollResponder",value:function(){var t=this._wrapperListRef&&this._wrapperListRef.getListRef();if(t)return t.getScrollResponder()}},{key:"getScrollableNode",value:function(){var t=this._wrapperListRef&&this._wrapperListRef.getListRef();if(t)return t.getScrollableNode()}},{key:"setNativeProps",value:function(t){var n=this._wrapperListRef&&this._wrapperListRef.getListRef();n&&n.setNativeProps(t)}},{key:"render",value:function(){return l.createElement(u,t({},this.props,{ref:this._captureRef,getItemCount:function(t){return t.length},getItem:function(t,n){return t[n]}}))}}]),R})(l.PureComponent);h.defaultProps=R,m.exports=h},276,[24,4,5,6,9,10,53,57,59,255,277]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),p=r(d[5]),c=r(d[6]),u=r(d[7]),h=r(d[8]),f=r(d[9]),S=r(d[10]),v=r(d[11]),I=(function(f){function I(t,p){var c;return o(this,I),(c=s(this,l(I).call(this,t,p)))._keyExtractor=function(t,n){var o=c._subExtractor(n);return o&&o.key||String(n)},c._convertViewable=function(t){v(null!=t.index,'Received a broken ViewToken');var o=c._subExtractor(t.index);if(!o)return null;var s=o.section.keyExtractor||c.props.keyExtractor;return n({},t,{index:o.index,key:s(t.item,o.index),section:o.section})},c._onViewableItemsChanged=function(t){var n=t.viewableItems,o=t.changed;c.props.onViewableItemsChanged&&c.props.onViewableItemsChanged({viewableItems:n.map(c._convertViewable,u(u(c))).filter(Boolean),changed:o.map(c._convertViewable,u(u(c))).filter(Boolean)})},c._renderItem=function(t){var n=t.item,o=t.index,s=c._subExtractor(o);if(!s)return null;var l=s.index;if(null==l){var p=s.section;if(!0===s.header){var u=c.props.renderSectionHeader;return u?u({section:p}):null}var f=c.props.renderSectionFooter;return f?f({section:p}):null}var S=s.section.renderItem||c.props.renderItem,I=c._getSeparatorComponent(o,s);return v(S,'no renderItem!'),h.createElement(_,{SeparatorComponent:I,LeadingSeparatorComponent:0===l?c.props.SectionSeparatorComponent:void 0,cellKey:s.key,index:l,item:n,leadingItem:s.leadingItem,leadingSection:s.leadingSection,onUpdateSeparator:c._onUpdateSeparator,prevCellKey:(c._subExtractor(o-1)||{}).key,ref:function(t){c._cellRefs[s.key]=t},renderItem:S,section:s.section,trailingItem:s.trailingItem,trailingSection:s.trailingSection})},c._onUpdateSeparator=function(t,n){var o=c._cellRefs[t];o&&o.updateSeparatorProps(n)},c._cellRefs={},c._captureRef=function(t){c._listRef=t},c.state=c._computeState(t),c}return c(I,f),p(I,[{key:"scrollToLocation",value:function(t){for(var o=t.itemIndex,s=0;s<t.sectionIndex;s++)o+=this.props.getItemCount(this.props.sections[s].data)+2;var l=t.viewOffset||0;t.itemIndex>0&&this.props.stickySectionHeadersEnabled&&(l+=this._listRef._getFrameMetricsApprox(o-t.itemIndex).length);var p=n({},t,{viewOffset:l,index:o});this._listRef.scrollToIndex(p)}},{key:"getListRef",value:function(){return this._listRef}}]),p(I,[{key:"UNSAFE_componentWillReceiveProps",value:function(t){this.setState(this._computeState(t))}},{key:"_computeState",value:function(t){var o=t.ListHeaderComponent?1:0,s=[],l=t.sections?t.sections.reduce(function(n,l){return s.push(n+o),n+t.getItemCount(l.data)+2},0):0;return{childProps:n({},t,{renderItem:this._renderItem,ItemSeparatorComponent:void 0,data:t.sections,getItemCount:function(){return l},getItem:function(n,o){return x(t,n,o)},keyExtractor:this._keyExtractor,onViewableItemsChanged:t.onViewableItemsChanged?this._onViewableItemsChanged:void 0,stickyHeaderIndices:t.stickySectionHeadersEnabled?s:void 0})}}},{key:"render",value:function(){return h.createElement(S,t({},this.state.childProps,{ref:this._captureRef}))}},{key:"_subExtractor",value:function(t){for(var n=t,o=this.props,s=o.getItem,l=o.getItemCount,p=o.keyExtractor,c=o.sections,u=0;u<c.length;u++){var h=c[u],f=h.data,S=h.key||String(u);if((n-=1)>=l(f)+1)n-=l(f)+1;else return-1===n?{section:h,key:S+':header',index:null,header:!0,trailingSection:c[u+1]}:n===l(f)?{section:h,key:S+':footer',index:null,header:!1,trailingSection:c[u+1]}:{section:h,key:S+':'+(h.keyExtractor||p)(s(f,n),n),index:n,leadingItem:s(f,n-1),leadingSection:c[u-1],trailingItem:s(f,n+1),trailingSection:c[u+1]}}}},{key:"_getSeparatorComponent",value:function(t,n){if(!(n=n||this._subExtractor(t)))return null;var o=n.section.ItemSeparatorComponent||this.props.ItemSeparatorComponent,s=this.props.SectionSeparatorComponent,l=t===this.state.childProps.getItemCount()-1,p=n.index===this.props.getItemCount(n.section.data)-1;return s&&p?s:!o||p||l?null:o}}]),I})(h.PureComponent);I.defaultProps=n({},S.defaultProps,{data:[]});var _=(function(t){function u(){var t,p;o(this,u);for(var c=arguments.length,h=new Array(c),f=0;f<c;f++)h[f]=arguments[f];return(p=s(this,(t=l(u)).call.apply(t,[this].
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},278,[199,246]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]);m.exports=s(t)},279,[90,246]);
__d(function(g,r,i,a,m,e,d){'use strict';var _=r(d[0]).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.NativeMethodsMixin;m.exports=_},280,[92]);
__d(function(g,r,i,a,m,e,d){'use strict';var s=r(d[0]),t=r(d[1]),o=r(d[2]),n=r(d[3]),c=r(d[4]),l=r(d[5]),p=r(d[6]),u=r(d[7]),h=r(d[8]).DeprecatedAccessibilityRoles,b={top:20,left:20,right:20,bottom:30},y=['accessibilityLabel','accessibilityHint','accessibilityIgnoresInvertColors','accessibilityRole','accessibilityStates','accessibilityState','accessibilityActions','onAccessibilityAction','hitSlop','nativeID','onBlur','onFocus','onLayout','testID'],f=p({displayName:'TouchableWithoutFeedback',mixins:[c.Mixin],propTypes:{accessible:n.bool,accessibilityLabel:n.node,accessibilityHint:n.string,accessibilityIgnoresInvertColors:n.bool,accessibilityRole:n.oneOf(h),accessibilityStates:n.array,accessibilityState:n.object,accessibilityActions:n.array,onAccessibilityAction:n.func,onFocus:n.func,onBlur:n.func,disabled:n.bool,onPress:n.func,onPressIn:n.func,onPressOut:n.func,onLayout:n.func,touchSoundDisabled:n.bool,onLongPress:n.func,nativeID:n.string,testID:n.string,delayPressIn:n.number,delayPressOut:n.number,delayLongPress:n.number,pressRetentionOffset:t,hitSlop:t},getInitialState:function(){return this.touchableGetInitialState()},componentDidMount:function(){u(this.props)},UNSAFE_componentWillReceiveProps:function(s){u(s)},touchableHandlePress:function(s){this.props.onPress&&this.props.onPress(s)},touchableHandleActivePressIn:function(s){this.props.onPressIn&&this.props.onPressIn(s)},touchableHandleActivePressOut:function(s){this.props.onPressOut&&this.props.onPressOut(s)},touchableHandleLongPress:function(s){this.props.onLongPress&&this.props.onLongPress(s)},touchableGetPressRectOffset:function(){return this.props.pressRetentionOffset||b},touchableGetHitSlop:function(){return this.props.hitSlop},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn||0},touchableGetLongPressDelayMS:function(){return 0===this.props.delayLongPress?0:this.props.delayLongPress||500},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut||0},render:function(){var t=o.Children.only(this.props.children),n=t.props.children;c.TOUCH_TARGET_DEBUG&&t.type===l&&(n=o.Children.toArray(n)).push(c.renderDebugView({color:'red',hitSlop:this.props.hitSlop}));for(var p={},u=0;u<y.length;u++){var h=y[u];void 0!==this.props[h]&&(p[h]=this.props[h])}return o.cloneElement(t,s({},p,{accessible:!1!==this.props.accessible,focusable:!1!==this.props.focusable&&void 0!==this.props.onPress,onClick:this.touchableHandlePress,onStartShouldSetResponder:this.touchableHandleStartShouldSetResponder,onResponderTerminationRequest:this.touchableHandleResponderTerminationRequest,onResponderGrant:this.touchableHandleResponderGrant,onResponderMove:this.touchableHandleResponderMove,onResponderRelease:this.touchableHandleResponderRelease,onResponderTerminate:this.touchableHandleResponderTerminate,children:n}))}});m.exports=f},281,[53,201,59,71,205,90,282,286,287]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]);if(void 0===t)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var c=(new t.Component).updater;m.exports=o(t.Component,t.isValidElement,c)},282,[59,283]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s='mixins';m.exports=function(p,c,u){var l=[],E={mixins:'DEFINE_MANY',statics:'DEFINE_MANY',propTypes:'DEFINE_MANY',contextTypes:'DEFINE_MANY',childContextTypes:'DEFINE_MANY',getDefaultProps:'DEFINE_MANY_MERGED',getInitialState:'DEFINE_MANY_MERGED',getChildContext:'DEFINE_MANY_MERGED',render:'DEFINE_ONCE',componentWillMount:'DEFINE_MANY',componentDidMount:'DEFINE_MANY',componentWillReceiveProps:'DEFINE_MANY',shouldComponentUpdate:'DEFINE_ONCE',componentWillUpdate:'DEFINE_MANY',componentDidUpdate:'DEFINE_MANY',componentWillUnmount:'DEFINE_MANY',UNSAFE_componentWillMount:'DEFINE_MANY',UNSAFE_componentWillReceiveProps:'DEFINE_MANY',UNSAFE_componentWillUpdate:'DEFINE_MANY',updateComponent:'OVERRIDE_BASE'},f={getDerivedStateFromProps:'DEFINE_MANY_MERGED'},h={displayName:function(t,n){t.displayName=n},mixins:function(t,n){if(n)for(var o=0;o<n.length;o++)N(t,n[o])},childContextTypes:function(n,o){n.childContextTypes=t({},n.childContextTypes,o)},contextTypes:function(n,o){n.contextTypes=t({},n.contextTypes,o)},getDefaultProps:function(t,n){t.getDefaultProps?t.getDefaultProps=M(t.getDefaultProps,n):t.getDefaultProps=n},propTypes:function(n,o){n.propTypes=t({},n.propTypes,o)},statics:function(t,n){_(t,n)},autobind:function(){}};function y(t,n){var s=E.hasOwnProperty(n)?E[n]:null;P.hasOwnProperty(n)&&o('OVERRIDE_BASE'===s,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",n),t&&o('DEFINE_MANY'===s||'DEFINE_MANY_MERGED'===s,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n)}function N(t,n){if(n){o('function'!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),o(!c(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var p=t.prototype,u=p.__reactAutoBindPairs;for(var l in n.hasOwnProperty(s)&&h.mixins(t,n.mixins),n)if(n.hasOwnProperty(l)&&l!==s){var f=n[l],N=p.hasOwnProperty(l);if(y(N,l),h.hasOwnProperty(l))h[l](t,f);else{var _=E.hasOwnProperty(l);if('function'!=typeof f||_||N||!1===n.autobind)if(N){var D=E[l];o(_&&('DEFINE_MANY_MERGED'===D||'DEFINE_MANY'===D),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",D,l),'DEFINE_MANY_MERGED'===D?p[l]=M(p[l],f):'DEFINE_MANY'===D&&(p[l]=I(p[l],f))}else p[l]=f;else u.push(l,f),p[l]=f}}}}function _(t,n){if(n)for(var s in n){var p=n[s];if(n.hasOwnProperty(s)){if(o(!(s in h),"ReactClass: You are attempting to define a reserved property, `%s`, that shouldn't be on the \"statics\" key. Define it as an instance property instead; it will still be accessible on the constructor.",s),s in t){var c=f.hasOwnProperty(s)?f[s]:null;return o('DEFINE_MANY_MERGED'===c,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",s),void(t[s]=M(t[s],p))}t[s]=p}}}function D(t,n){for(var s in o(t&&n&&'object'==typeof t&&'object'==typeof n,'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'),n)n.hasOwnProperty(s)&&(o(void 0===t[s],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",s),t[s]=n[s]);return t}function M(t,n){return function(){var o=t.apply(this,arguments),s=n.apply(this,arguments);if(null==o)return s;if(null==s)return o;var p={};return D(p,o),D(p,s),p}}function I(t,n){return function(){t.apply(this,arguments),n.apply(this,arguments)}}function A(t,n){return n.bind(t)}function F(t){for(var n=t.__reactAutoBindPairs,o=0;o<n.length;o+=2){var s=n[o],p=n[o+1];t[s]=A(t,p)}}var Y={componentDidMount:function(){this.__isMounted=!0}},v={componentWillUnmount:function(){this.__isMounted=!1}},P={replaceState:function(t,n){this.updater.enqueueReplaceS
__d(function(g,r,i,a,m,e,d){'use strict';m.exports={}},284,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=function(n){};m.exports=function(o,t,f,s,u,c,l,v){if(n(t),!o){var p;if(void 0===t)p=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var h=[f,s,u,c,l,v],w=0;(p=new Error(t.replace(/%s/g,function(){return h[w++]}))).name='Invariant Violation'}throw p.framesToPop=1,p}}},285,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);m.exports=function(s){n(!(s.delayPressIn<0||s.delayPressOut<0||s.delayLongPress<0),'Touchable components cannot have negative delay properties')}},286,[16]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports={DeprecatedAccessibilityRoles:['none','button','link','search','image','keyboardkey','text','adjustable','imagebutton','header','summary','alert','checkbox','combobox','menu','menubar','menuitem','progressbar','radio','radiogroup','scrollbar','spinbutton','switch','tab','tablist','timer','toolbar'],DeprecatedAccessibilityStates:['selected','disabled','checked','unchecked','busy','expanded','collapsed','hasPopup']}},287,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},288,[289]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),p=r(d[4]),o=r(d[5]),c=r(d[6]),l=(function(c){function l(){return t(this,l),s(this,u(l).apply(this,arguments))}return p(l,c),n(l,[{key:"render",value:function(){var t=r(d[7]);return o.createElement(t,{style:[h.unimplementedView,this.props.style]},this.props.children)}}]),l})(o.Component),h=c.create({unimplementedView:{}});m.exports=l},289,[4,5,6,9,10,59,62,90]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),u=r(d[5]),p=r(d[6]),c=r(d[7]),h=r(d[8]),f=r(d[9]),v=(function(c){function v(){var n,l;t(this,v);for(var u=arguments.length,p=new Array(u),c=0;c<u;c++)p[c]=arguments[c];return(l=o(this,(n=s(v)).call.apply(n,[this].concat(p))))._picker=null,l._onChange=function(t){var n=t.nativeEvent.timestamp;l.props.onDateChange&&l.props.onDateChange(new Date(n)),l.props.onChange&&l.props.onChange(t)},l}return l(v,c),n(v,[{key:"componentDidUpdate",value:function(){if(this.props.date){var t=this.props.date.getTime();this._picker&&this._picker.setNativeProps({date:t})}}},{key:"render",value:function(){var t=this,n=this.props;return f(n.date||n.initialDate,'A selected date or initial date should be specified.'),p.createElement(h,{style:n.style},p.createElement(u,{testID:n.testID,ref:function(n){t._picker=n},style:D.datePickerIOS,date:n.date?n.date.getTime():n.initialDate?n.initialDate.getTime():void 0,locale:null!=n.locale&&''!==n.locale?n.locale:void 0,maximumDate:n.maximumDate?n.maximumDate.getTime():void 0,minimumDate:n.minimumDate?n.minimumDate.getTime():void 0,mode:n.mode,minuteInterval:n.minuteInterval,timeZoneOffsetInMinutes:n.timeZoneOffsetInMinutes,onChange:this._onChange,onStartShouldSetResponder:function(){return!0},onResponderTerminationRequest:function(){return!1}}))}}]),v})(p.Component);v.DefaultProps={mode:'datetime'};var D=c.create({datePickerIOS:{height:216}});m.exports=v},290,[4,5,6,9,10,291,59,62,90,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t('RCTDatePicker')},291,[184]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},292,[289]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),l=r(d[2]),s=r(d[3]),c=r(d[4]),o=r(d[5]),f=r(d[6]),u=r(d[7]),h=r(d[8]),v=r(d[9]),y=r(d[10]),p=(function(p){function R(){var t,n;l(this,R);for(var s=arguments.length,f=new Array(s),u=0;u<s;u++)f[u]=arguments[u];return(n=c(this,(t=o(R)).call.apply(t,[this].concat(f))))._viewRef=null,n._captureRef=function(t){n._viewRef=t},n}return f(R,p),s(R,[{key:"setNativeProps",value:function(t){var n=this._viewRef;n&&n.setNativeProps(t)}},{key:"render",value:function(){var l=this.props,s=l.children,c=l.style,o=l.imageStyle,f=l.imageRef,p=n(l,["children","style","imageStyle","imageRef"]);return h.createElement(y,{accessibilityIgnoresInvertColors:!0,style:c,ref:this._captureRef},h.createElement(u,t({},p,{style:[v.absoluteFill,{width:c.width,height:c.height},o],ref:f})),s)}}]),R})(h.Component);m.exports=p},293,[24,55,4,5,6,9,10,269,59,62,90]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),p=t(r(d[6])),c=(r(d[7]),r(d[8]),r(d[9])),h=r(d[10]),f=(function(t){function h(){return(0,n.default)(this,h),(0,s.default)(this,(0,u.default)(h).apply(this,arguments))}return(0,l.default)(h,t),(0,o.default)(h,[{key:"render",value:function(){return 0===c.Children.count(this.props.children)?null:c.createElement(p.default,{style:[this.props.style,v.container],nativeID:this.props.nativeID,backgroundColor:this.props.backgroundColor},this.props.children)}}]),h})(c.Component),v=h.create({container:{position:'absolute'}});m.exports=f},294,[3,4,5,6,9,10,295,68,57,59,62]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('RCTInputAccessoryView');e.default=u},295,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),u=r(d[5]),h=r(d[6]),c=r(d[7]),f=r(d[8]),y=(r(d[9]),r(d[10])),b=r(d[11]),v=r(d[12]),_=(function(_){function p(t){var n;return o(this,p),(n=l(this,u(p).call(this,t)))._frame=null,n._subscriptions=[],n._initialFrameHeight=0,n._onKeyboardChange=function(t){if(null!=t){var o=t.duration,s=t.easing,l=t.endCoordinates,u=n._relativeKeyboardHeight(l);n.state.bottom!==u&&(o&&s&&f.configureNext({duration:o>10?o:10,update:{duration:o>10?o:10,type:f.Types[s]||'keyboard'}}),n.setState({bottom:u}))}else n.setState({bottom:0})},n._onLayout=function(t){n._frame=t.nativeEvent.layout,n._initialFrameHeight||(n._initialFrameHeight=n._frame.height)},n.state={bottom:0},n.viewRef=y.createRef(),n}return h(p,_),s(p,[{key:"_relativeKeyboardHeight",value:function(t){var n=this._frame;if(!n||!t)return 0;var o=t.screenY-this.props.keyboardVerticalOffset;return Math.max(n.y+n.height-o,0)}},{key:"componentDidMount",value:function(){this._subscriptions=[c.addListener('keyboardWillChangeFrame',this._onKeyboardChange)]}},{key:"componentWillUnmount",value:function(){this._subscriptions.forEach(function(t){t.remove()})}},{key:"render",value:function(){var o=this.props,s=o.behavior,l=o.children,u=o.contentContainerStyle,h=o.enabled,c=(o.keyboardVerticalOffset,o.style),f=n(o,["behavior","children","contentContainerStyle","enabled","keyboardVerticalOffset","style"]),_=h?this.state.bottom:0;switch(s){case'height':var p;return null!=this._frame&&this.state.bottom>0&&(p={height:this._initialFrameHeight-_,flex:0}),y.createElement(v,t({ref:this.viewRef,style:b.compose(c,p),onLayout:this._onLayout},f),l);case'position':return y.createElement(v,t({ref:this.viewRef,style:c,onLayout:this._onLayout},f),y.createElement(v,{style:b.compose(u,{bottom:_})},l));case'padding':return y.createElement(v,t({ref:this.viewRef,style:b.compose(c,{paddingBottom:_}),onLayout:this._onLayout},f),l);default:return y.createElement(v,t({ref:this.viewRef,onLayout:this._onLayout,style:c},f),l)}}}]),p})(y.Component);_.defaultProps={enabled:!0,keyboardVerticalOffset:0},m.exports=_},296,[24,55,4,5,6,9,10,259,261,57,59,62,90]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),l=n(r(d[2])),s=n(r(d[3])),o=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),h=r(d[8]),p=r(d[9]),k=r(d[10]),v=(function(n){function v(){var n,t;(0,l.default)(this,v);for(var s=arguments.length,c=new Array(s),f=0;f<s;f++)c[f]=arguments[f];return(t=(0,o.default)(this,(n=(0,u.default)(v)).call.apply(n,[this].concat(c))))._hasWarnedInvalidRenderMask=!1,t}return(0,c.default)(v,n),(0,s.default)(v,[{key:"render",value:function(){var n=this.props,l=n.maskElement,s=n.children,o=(0,t.default)(n,["maskElement","children"]);return h.isValidElement(l)?h.createElement(f.default,o,h.createElement(k,{pointerEvents:"none",style:p.absoluteFill},l),s):(this._hasWarnedInvalidRenderMask||(console.warn("MaskedView: Invalid `maskElement` prop was passed to MaskedView. Expected a React Element. No mask will render."),this._hasWarnedInvalidRenderMask=!0),h.createElement(k,o,s))}}]),v})(h.Component);m.exports=v},297,[3,55,4,5,6,9,10,298,59,62,90]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('RCTMaskedView');e.default=u},298,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,n=r(d[0]),o=n(r(d[1])),s=n(r(d[2])),l=n(r(d[3])),p=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),h=n(r(d[7])),f=n(r(d[8])),v=(r(d[9]),r(d[10])),y=r(d[11]),S=(r(d[12]),r(d[13])),_=r(d[14]),C=r(d[15]),b=r(d[16]),w=r(d[17]),k=null!=h.default?new y(h.default):null,R=0,x=(function(t){function n(t){var o;return(0,s.default)(this,n),o=(0,p.default)(this,(0,u.default)(n).call(this,t)),n._confirmProps(t),o._identifier=R++,o}return(0,c.default)(n,t),(0,l.default)(n,[{key:"getChildContext",value:function(){return{virtualizedList:null}}},{key:"componentDidMount",value:function(){var t=this;k&&(this._eventSubscription=k.addListener('modalDismissed',function(n){n.modalID===t._identifier&&t.props.onDismiss&&t.props.onDismiss()}))}},{key:"componentWillUnmount",value:function(){this._eventSubscription&&this._eventSubscription.remove()}},{key:"UNSAFE_componentWillReceiveProps",value:function(t){n._confirmProps(t)}},{key:"render",value:function(){if(!0!==this.props.visible)return null;var t={backgroundColor:this.props.transparent?'transparent':'white'},n=this.props.animationType;n||(n='none',this.props.animated&&(n='slide'));var o=this.props.presentationStyle;o||(o='fullScreen',this.props.transparent&&(o='overFullScreen'));var s=this.props.children;return S.createElement(f.default,{animationType:n,presentationStyle:o,transparent:this.props.transparent,hardwareAccelerated:this.props.hardwareAccelerated,onRequestClose:this.props.onRequestClose,onShow:this.props.onShow,identifier:this._identifier,style:T.modal,onStartShouldSetResponder:this._shouldSetResponder,supportedOrientations:this.props.supportedOrientations,onOrientationChange:this.props.onOrientationChange},S.createElement(C.Context.Provider,{value:null},S.createElement(w,{style:[T.container,t]},s)))}},{key:"_shouldSetResponder",value:function(){return!0}}],[{key:"_confirmProps",value:function(t){t.presentationStyle&&'overFullScreen'!==t.presentationStyle&&t.transparent&&console.warn("Modal with '"+t.presentationStyle+"' presentation style and 'transparent' value is not supported.")}}]),n})(S.Component);x.defaultProps={visible:!0,hardwareAccelerated:!1},x.contextTypes={rootTag:_.number},x.childContextTypes={virtualizedList:_.object};var P=v.getConstants().isRTL?'right':'left',T=b.create({modal:{position:'absolute'},container:(t={},(0,o.default)(t,P,0),(0,o.default)(t,"top",0),(0,o.default)(t,"flex",1),t)});m.exports=x},299,[3,54,4,5,6,9,10,300,301,302,304,125,57,59,71,255,62,90]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('ModalManager');e.default=u},300,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,t(r(d[1])).default)('ModalHostView',{interfaceOnly:!0,paperComponentName:'RCTModalHostView'});e.default=o},301,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),l=r(d[4]),p=(r(d[5]),r(d[6])),u=(r(d[7]),r(d[8])),c=(r(d[9]),r(d[10])),h=r(d[11]),v=r(d[12]),f=(function(p){function h(){var n,l;t(this,h);for(var p=arguments.length,u=new Array(p),c=0;c<p;c++)u[c]=arguments[c];return(l=o(this,(n=s(h)).call.apply(n,[this].concat(u)))).state={inspector:null,mainKey:1},l._subscription=null,l}return l(h,p),n(h,[{key:"getChildContext",value:function(){return{rootTag:this.props.rootTag}}},{key:"componentDidMount",value:function(){}},{key:"componentWillUnmount",value:function(){null!=this._subscription&&this._subscription.remove()}},{key:"render",value:function(){var t=this,n=u.createElement(v,{collapsable:!this.state.inspector,key:this.state.mainKey,pointerEvents:"box-none",style:y.appContainer,ref:function(n){t._mainRef=n}},this.props.children),o=this.props.WrapperComponent;return null!=o&&(n=u.createElement(o,null,n)),u.createElement(c.Provider,{value:this.props.rootTag},u.createElement(v,{style:y.appContainer,pointerEvents:"box-none"},n,null,this.state.inspector))}}]),h})(u.Component);f.childContextTypes={rootTag:p.number};var y=h.create({appContainer:{flex:1}});m.exports=f},302,[4,5,6,9,10,49,71,45,59,92,303,62,90]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t.createContext(0)},303,[59]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=t.default?t.default.getConstants():{isRTL:!1,doLeftAndRightSwapInRTL:!0};m.exports={getConstants:function(){return n},allowRTL:function(n){t.default&&t.default.allowRTL(n)},forceRTL:function(n){t.default&&t.default.forceRTL(n)},swapLeftAndRightInRTL:function(n){t.default&&t.default.swapLeftAndRightInRTL(n)},isRTL:n.isRTL,doLeftAndRightSwapInRTL:n.doLeftAndRightSwapInRTL}},304,[3,305]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('I18nManager');e.default=u},305,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),s=r(d[4]),p=(r(d[5]),r(d[6])),l=(r(d[7]),r(d[8])),c=(r(d[9]),(function(p){function l(){return t(this,l),o(this,u(l).apply(this,arguments))}return s(l,p),n(l,[{key:"render",value:function(){throw null}}]),l})(l.Component)),h=(function(c){function h(){return t(this,h),o(this,u(h).apply(this,arguments))}return s(h,c),n(h,[{key:"render",value:function(){return l.createElement(p,this.props,this.props.children)}}]),h})(l.Component);h.MODE_DIALOG="dialog",h.MODE_DROPDOWN='dropdown',h.Item=c,h.defaultProps={mode:"dialog"},m.exports=h},306,[4,5,6,9,10,307,308,57,59,289]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},307,[289]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),l=r(d[4]),p=r(d[5]),c=r(d[6]),u=(r(d[7]),r(d[8])),h=r(d[9]),v=r(d[10]),f=(function(u){function f(){var n,l;t(this,f);for(var p=arguments.length,c=new Array(p),u=0;u<p;u++)c[u]=arguments[u];return(l=s(this,(n=o(f)).call.apply(n,[this].concat(c))))._picker=null,l.state={selectedIndex:0,items:[]},l._onChange=function(t){l.props.onChange&&l.props.onChange(t),l.props.onValueChange&&l.props.onValueChange(t.nativeEvent.newValue,t.nativeEvent.newIndex),l._picker&&l.state.selectedIndex!==t.nativeEvent.newIndex&&l._picker.setNativeProps({selectedIndex:l.state.selectedIndex})},l}return l(f,u),n(f,[{key:"render",value:function(){var t=this;return c.createElement(h,{style:this.props.style},c.createElement(p,{ref:function(n){t._picker=n},testID:this.props.testID,style:[I.pickerIOS,this.props.itemStyle],items:this.state.items,selectedIndex:this.state.selectedIndex,onChange:this._onChange,onStartShouldSetResponder:function(){return!0},onResponderTerminationRequest:function(){return!1}}))}}],[{key:"getDerivedStateFromProps",value:function(t){var n=0,s=[];return c.Children.toArray(t.children).filter(function(t){return null!==t}).forEach(function(o,l){o.props.value===t.selectedValue&&(n=l),s.push({value:o.props.value,label:o.props.label,textColor:v(o.props.color)})}),{selectedIndex:n,items:s}}}]),f})(c.Component);f.Item=function(t){return null};var I=u.create({pickerIOS:{height:216}});m.exports=f},308,[4,5,6,9,10,309,59,92,62,90,84]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);m.exports=t('RCTPicker')},309,[184]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},310,[289]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),f=t(r(d[2])),n=r(d[3]),o=r(d[4]).create({progressView:{height:2}}),u=n.forwardRef(function(t,u){return n.createElement(f.default,(0,s.default)({},t,{style:[o.progressView,t.style],ref:u}))});m.exports=u},311,[3,24,312,59,62]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('RCTProgressView');e.default=u},312,[3,187]);
__d(function(g,r,i,a,m,e,d){var t,f=r(d[0]),n=(r(d[1]),r(d[2]),r(d[3])),u=(r(d[4]),r(d[5]).default),l=n.forwardRef(function(t,l){return n.createElement(u,f({emulateUnlessSupported:!0},t,{ref:l}))});l.displayName='SafeAreaView',t=l,m.exports=t},313,[24,55,57,59,90,314]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('RCTSafeAreaView');e.default=u},314,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=t(r(d[2])),l=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),s=t(r(d[6])),h=t(r(d[7])),p=t(r(d[8])),c=n(r(d[9])),C=t(r(d[10])),v=t(r(d[11])),y=(function(n){function t(){var n,o;(0,u.default)(this,t);for(var l=arguments.length,f=new Array(l),p=0;p<l;p++)f[p]=arguments[p];return(o=(0,s.default)(this,(n=(0,h.default)(t)).call.apply(n,[this].concat(f))))._onChange=function(n){o.props.onChange&&o.props.onChange(n),o.props.onValueChange&&o.props.onValueChange(n.nativeEvent.value)},o}return(0,p.default)(t,n),(0,f.default)(t,[{key:"render",value:function(){var n=this.props,t=n.forwardedRef,u=(n.onValueChange,n.style),f=(0,l.default)(n,["forwardedRef","onValueChange","style"]);return c.createElement(v.default,(0,o.default)({},f,{ref:t,style:[w.segmentedControl,u],onChange:this._onChange}))}}]),t})(c.Component);y.defaultProps={values:[],enabled:!0};var w=C.default.create({segmentedControl:{height:28}}),R=c.forwardRef(function(n,t){return c.createElement(y,(0,o.default)({},n,{forwardedRef:t}))});m.exports=R},315,[2,3,24,55,4,5,6,9,10,59,62,316]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('RCTSegmentedControl');e.default=u},316,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),l=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),s=(r(d[4]),r(d[5])),f=(r(d[6]),r(d[7])),c=s.forwardRef(function(t,c){var p=f.compose(n.slider,t.style),v=t.onValueChange,h=t.onSlidingComplete,C=(0,u.default)(t,["onValueChange","onSlidingComplete"]),S=v?function(n){v(n.nativeEvent.value)}:null,V=S,R=h?function(n){h(n.nativeEvent.value)}:null;return s.createElement(o.default,(0,l.default)({},C,{ref:c,style:p,onChange:V,onSlidingComplete:R,onValueChange:S,enabled:!t.disabled,onStartShouldSetResponder:function(){return!0},onResponderTerminationRequest:function(){return!1}}))});c.defaultProps={disabled:!1,value:0,minimumValue:0,maximumValue:1,step:0},n=f.create({slider:{height:40}}),m.exports=c},317,[3,24,55,318,57,59,92,62]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=(0,t(r(d[1])).default)('Slider',{interfaceOnly:!0,paperComponentName:'RCTSlider'});e.default=l},318,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=n(r(d[1])),t=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),h=n(r(d[6])),c=n(r(d[7])),C=n(r(d[8])),f=(r(d[9]),r(d[10]),r(d[11])),p=r(d[12]),v=(function(n){function v(){var n,o;(0,l.default)(this,v);for(var t=arguments.length,u=new Array(t),c=0;c<t;c++)u[c]=arguments[c];return(o=(0,s.default)(this,(n=(0,h.default)(v)).call.apply(n,[this].concat(u))))._handleChange=function(n){if(null!=o._nativeSwitchRef){var t=!0===o.props.value;o._nativeSwitchRef.setNativeProps({value:t}),null!=o.props.onChange&&o.props.onChange(n),null!=o.props.onValueChange&&o.props.onValueChange(n.nativeEvent.value)}},o._handleSwitchNativeComponentRef=function(n){o._nativeSwitchRef=n},o}return(0,c.default)(v,n),(0,u.default)(v,[{key:"render",value:function(){var n,l=this.props,u=l.disabled,s=l.ios_backgroundColor,h=(l.onChange,l.onValueChange,l.style),c=l.thumbColor,v=l.trackColor,_=l.value,y=(0,t.default)(l,["disabled","ios_backgroundColor","onChange","onValueChange","style","thumbColor","trackColor","value"]),S=c,w=null==v?void 0:v.false,k=null==v?void 0:v.true,T=y,V=T.thumbTintColor,N=T.tintColor,E=T.onTintColor;null!=V&&(S=V),null!=N&&(w=N),null!=E&&(k=E);var q={disabled:u,onTintColor:k,style:p.compose({height:31,width:51},p.compose(h,null==s?null:{backgroundColor:s,borderRadius:16})),thumbTintColor:S,tintColor:w,value:!0===_};return f.createElement(C.default,(0,o.default)({},y,q,{accessibilityRole:null!=(n=y.accessibilityRole)?n:'button',onChange:this._handleChange,onResponderTerminationRequest:b,onStartShouldSetResponder:R,ref:this._handleSwitchNativeComponentRef}))}}]),v})(f.Component),b=function(){return!1},R=function(){return!0};m.exports=v},319,[3,24,55,4,5,6,9,10,320,321,57,59,62]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=(0,t(r(d[1])).default)('Switch',{paperComponentName:'RCTSwitch'});e.default=u},320,[3,187]);
__d(function(g,r,i,a,m,e,d){'use strict';r(d[0]).NativeComponent;var t=r(d[1]);m.exports=t('AndroidSwitch')},321,[92,184]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),s=t(r(d[6])),p=t(r(d[7])),k=(r(d[8]),r(d[9]));r(d[10]);function y(t){return{backgroundColor:null!=t.backgroundColor?{value:t.backgroundColor,animated:t.animated}:null,barStyle:null!=t.barStyle?{value:t.barStyle,animated:t.animated}:null,translucent:t.translucent,hidden:null!=t.hidden?{value:t.hidden,animated:t.animated,transition:t.showHideTransition}:null,networkActivityIndicatorVisible:t.networkActivityIndicatorVisible}}var f=(function(t){function s(){var t,l;(0,n.default)(this,s);for(var c=arguments.length,p=new Array(c),k=0;k<c;k++)p[k]=arguments[k];return(l=(0,o.default)(this,(t=(0,u.default)(s)).call.apply(t,[this].concat(p))))._stackEntry=null,l}return(0,c.default)(s,t),(0,l.default)(s,[{key:"componentDidMount",value:function(){this._stackEntry=s.pushStackEntry(this.props)}},{key:"componentWillUnmount",value:function(){s.popStackEntry(this._stackEntry)}},{key:"componentDidUpdate",value:function(){this._stackEntry=s.replaceStackEntry(this._stackEntry,this.props)}},{key:"render",value:function(){return null}}],[{key:"setHidden",value:function(t,n){n=n||'none',s._defaultProps.hidden.value=t,p.default.setHidden(t,n)}},{key:"setBarStyle",value:function(t,n){n=n||!1,s._defaultProps.barStyle.value=t,p.default.setStyle(t,n)}},{key:"setNetworkActivityIndicatorVisible",value:function(t){s._defaultProps.networkActivityIndicatorVisible=t,p.default.setNetworkActivityIndicatorVisible(t)}},{key:"setBackgroundColor",value:function(t,n){console.warn('`setBackgroundColor` is only available on Android')}},{key:"setTranslucent",value:function(t){console.warn('`setTranslucent` is only available on Android')}},{key:"pushStackEntry",value:function(t){var n=y(t);return s._propsStack.push(n),s._updatePropsStack(),n}},{key:"popStackEntry",value:function(t){var n=s._propsStack.indexOf(t);-1!==n&&s._propsStack.splice(n,1),s._updatePropsStack()}},{key:"replaceStackEntry",value:function(t,n){var l=y(n),o=s._propsStack.indexOf(t);return-1!==o&&(s._propsStack[o]=l),s._updatePropsStack(),l}}]),s})(k.Component);f._propsStack=[],f._defaultProps=y({animated:!1,showHideTransition:'fade',backgroundColor:'black',barStyle:'default',translucent:!1,hidden:!1,networkActivityIndicatorVisible:!1}),f._updateImmediate=null,f._currentValues=null,f.currentHeight=p.default.getConstants().HEIGHT,f.defaultProps={animated:!1,showHideTransition:'fade'},f._updatePropsStack=function(){clearImmediate(f._updateImmediate),f._updateImmediate=setImmediate(function(){var t,n,l=f._currentValues,o=(t=f._propsStack,n=f._defaultProps,t.reduce(function(t,n){for(var l in n)null!=n[l]&&(t[l]=n[l]);return t},(0,s.default)({},n)));l&&l.barStyle.value===o.barStyle.value||p.default.setStyle(o.barStyle.value,o.barStyle.animated||!1),l&&l.hidden.value===o.hidden.value||p.default.setHidden(o.hidden.value,o.hidden.animated?o.hidden.transition:'none'),l&&l.networkActivityIndicatorVisible===o.networkActivityIndicatorVisible||p.default.setNetworkActivityIndicatorVisible(o.networkActivityIndicatorVisible),f._currentValues=o})},m.exports=f},322,[3,4,5,6,9,10,24,323,57,59,84]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).getEnforcing('StatusBarManager');e.default=u},323,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,n,s=r(d[0]),o=r(d[1]),l=r(d[2]),c=r(d[3]),p=r(d[4]),u=r(d[5]),h=r(d[6]),f=(r(d[7]),r(d[8])),_=(r(d[9]),r(d[10])),S=r(d[11]),v=r(d[12]),y=r(d[13]),b=r(d[14]),C=r(d[15]),I=r(d[16]),x=r(d[17]),T=r(d[18]),R=r(d[19]),F=r(d[20]);r(d[21]);t=F('RCTMultilineTextInputView'),n=F('RCTSinglelineTextInputView');var N=function(){return!0},D=T({displayName:'TextInput',statics:{State:{currentlyFocusedField:C.currentlyFocusedField,focusTextInput:C.focusTextInput,blurTextInput:C.blurTextInput}},propTypes:h,getDefaultProps:function(){return{allowFontScaling:!0,rejectResponderTermination:!0,underlineColorAndroid:'transparent'}},mixins:[f],isFocused:function(){return C.currentlyFocusedField()===S.findNodeHandle(this._inputRef)},_inputRef:void 0,_focusSubscription:void 0,_lastNativeText:void 0,_lastNativeSelection:void 0,_rafId:null,componentDidMount:function(){this._lastNativeText=this.props.value;var t=S.findNodeHandle(this._inputRef);null!=t&&C.registerInput(t),this.props.autoFocus&&(this._rafId=requestAnimationFrame(this.focus))},componentWillUnmount:function(){this._focusSubscription&&this._focusSubscription.remove(),this.isFocused()&&this.blur();var t=S.findNodeHandle(this._inputRef);null!=t&&C.unregisterInput(t),null!=this._rafId&&cancelAnimationFrame(this._rafId)},clear:function(){this.setNativeProps({text:''})},render:function(){var t;return t=x.getViewManagerConfig('RCTVirtualText')?this._renderIOS():this._renderIOSLegacy(),_.createElement(b.Provider,{value:!0},t)},_getText:function(){return'string'==typeof this.props.value?this.props.value:'string'==typeof this.props.defaultValue?this.props.defaultValue:''},_setNativeRef:function(t){this._inputRef=t},_renderIOSLegacy:function(){var s,o=u({},this.props);if(o.style=[this.props.style],o.selection&&null==o.selection.end&&(o.selection={start:o.selection.start,end:o.selection.start}),o.multiline){var l=o.children,c=0;_.Children.forEach(l,function(){return++c}),R(!(o.value&&c),'Cannot specify both value and children.'),c>=1&&(l=_.createElement(y,{style:o.style,allowFontScaling:o.allowFontScaling,maxFontSizeMultiplier:o.maxFontSizeMultiplier},l)),o.inputView&&(l=[l,o.inputView]),o.style.unshift(L.multilineInput),s=_.createElement(t,u({ref:this._setNativeRef},o,{children:l,onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this.props.onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:N,text:this._getText(),dataDetectorTypes:this.props.dataDetectorTypes,onScroll:this._onScroll}))}else s=_.createElement(n,u({ref:this._setNativeRef},o,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onSelectionChange:this._onSelectionChange,onSelectionChangeShouldSetResponder:N,text:this._getText()}));return _.createElement(I,{onLayout:o.onLayout,onPress:this._onPress,rejectResponderTermination:!0,accessible:o.accessible,accessibilityLabel:o.accessibilityLabel,accessibilityRole:o.accessibilityRole,accessibilityStates:o.accessibilityStates,accessibilityState:o.accessibilityState,nativeID:this.props.nativeID,testID:o.testID},s)},_renderIOS:function(){var s=u({},this.props);s.style=[this.props.style],s.selection&&null==s.selection.end&&(s.selection={start:s.selection.start,end:s.selection.start});var o=s.multiline?t:n;s.multiline&&s.style.unshift(L.multilineInput);var l=_.createElement(o,u({ref:this._setNativeRef},s,{onFocus:this._onFocus,onBlur:this._onBlur,onChange:this._onChange,onContentSizeChange:this.props.onContentSizeChange,onSelectionChange:this._onSelectionChange,onTextInput:this._onTextInput,onSelectionChangeShouldSetResponder:N,text:this._getText(),dataDetectorTypes:this.props.dataDetectorTypes,onScroll:this._onScroll}));return _.createElement(I,{onLayout:s.onLayout,onPress:this._onPress,rejectResponderTermination:s.rejectResponderTermination,accessible:s.accessible,accessibilityLabel:s.accessibilityLabel,accessibilityRole:s.accessibilityRole,accessibilityStates:s.accessibilityStates,accessibilityState:s.accessibilityState,nati
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=r(d[1]),t=r(d[2]),l=r(d[3]),s=r(d[4]),c=r(d[5]),u=['phoneNumber','link','address','calendarEvent','none','all'];m.exports=n({},l,{autoCapitalize:o.oneOf(['none','sentences','words','characters']),autoCompleteType:o.oneOf(['cc-csc','cc-exp','cc-exp-month','cc-exp-year','cc-number','email','name','password','postal-code','street-address','tel','username','off']),autoCorrect:o.bool,spellCheck:o.bool,autoFocus:o.bool,allowFontScaling:o.bool,maxFontSizeMultiplier:o.number,editable:o.bool,keyboardType:o.oneOf(['default','email-address','numeric','phone-pad','number-pad','ascii-capable','numbers-and-punctuation','url','name-phone-pad','decimal-pad','twitter','web-search','visible-password']),keyboardAppearance:o.oneOf(['default','light','dark']),returnKeyType:o.oneOf(['done','go','next','search','send','none','previous','default','emergency-call','google','join','route','yahoo']),returnKeyLabel:o.string,maxLength:o.number,numberOfLines:o.number,disableFullscreenUI:o.bool,enablesReturnKeyAutomatically:o.bool,multiline:o.bool,textBreakStrategy:o.oneOf(['simple','highQuality','balanced']),onBlur:o.func,onFocus:o.func,onChange:o.func,onChangeText:o.func,onContentSizeChange:o.func,onTextInput:o.func,onEndEditing:o.func,onSelectionChange:o.func,onSubmitEditing:o.func,onKeyPress:o.func,onLayout:o.func,onScroll:o.func,placeholder:o.string,placeholderTextColor:t,scrollEnabled:o.bool,secureTextEntry:o.bool,selectionColor:t,selectionState:o.instanceOf(s),selection:o.shape({start:o.number.isRequired,end:o.number}),value:o.string,defaultValue:o.string,clearButtonMode:o.oneOf(['never','while-editing','unless-editing','always']),clearTextOnFocus:o.bool,selectTextOnFocus:o.bool,blurOnSubmit:o.bool,style:c.propTypes.style,underlineColorAndroid:t,inlineImageLeft:o.string,inlineImagePadding:o.number,rejectResponderTermination:o.bool,dataDetectorTypes:o.oneOfType([o.oneOf(u),o.arrayOf(o.oneOf(u))]),caretHidden:o.bool,contextMenuHidden:o.bool,inputAccessoryViewID:o.string,textContentType:o.oneOf(['none','URL','addressCity','addressCityAndState','addressState','countryName','creditCardNumber','emailAddress','familyName','fullStreetAddress','givenName','jobTitle','location','middleName','name','namePrefix','nameSuffix','nickname','organizationName','postalCode','streetAddressLine1','streetAddressLine2','sublocality','telephoneNumber','username','password','newPassword','oneTimeCode']),showSoftInputOnFocus:o.bool})},325,[53,71,68,326,328,199]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),n=r(d[1]),s=r(d[2]),t=r(d[3]),c=r(d[4]),l=r(d[5]),b=r(d[6]),u=b.DeprecatedAccessibilityRoles,p=b.DeprecatedAccessibilityStates,f=s(t);m.exports=o({accessible:l.bool,accessibilityLabel:l.node,accessibilityHint:l.string,accessibilityActions:l.arrayOf(l.string),accessibilityIgnoresInvertColors:l.bool,accessibilityRole:l.oneOf(u),accessibilityStates:l.arrayOf(l.oneOf(p)),accessibilityState:l.object,accessibilityLiveRegion:l.oneOf(['none','polite','assertive']),importantForAccessibility:l.oneOf(['auto','yes','no','no-hide-descendants']),accessibilityViewIsModal:l.bool,accessibilityElementsHidden:l.bool,onAccessibilityAction:l.func,onAccessibilityTap:l.func,onMagicTap:l.func,testID:l.string,nativeID:l.string,onResponderGrant:l.func,onResponderMove:l.func,onResponderReject:l.func,onResponderRelease:l.func,onResponderTerminate:l.func,onResponderTerminationRequest:l.func,onStartShouldSetResponder:l.func,onStartShouldSetResponderCapture:l.func,onMoveShouldSetResponder:l.func,onMoveShouldSetResponderCapture:l.func,hitSlop:n,onLayout:l.func,pointerEvents:l.oneOf(['box-none','none','box-only','auto']),style:f,removeClippedSubviews:l.bool,renderToHardwareTextureAndroid:l.bool,shouldRasterizeIOS:l.bool,collapsable:l.bool,needsOffscreenAlphaCompositing:l.bool},c)},326,[53,201,202,83,327,71,287]);
__d(function(g,r,i,a,m,e,d){'use strict'},327,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),f=r(d[2]),u=(function(){function f(s,u){t(this,f),this._anchorOffset=s,this._focusOffset=u,this._hasFocus=!1}return s(f,[{key:"update",value:function(t,s){this._anchorOffset===t&&this._focusOffset===s||(this._anchorOffset=t,this._focusOffset=s,this.emit('update'))}},{key:"constrainLength",value:function(t){this.update(Math.min(this._anchorOffset,t),Math.min(this._focusOffset,t))}},{key:"focus",value:function(){this._hasFocus||(this._hasFocus=!0,this.emit('focus'))}},{key:"blur",value:function(){this._hasFocus&&(this._hasFocus=!1,this.emit('blur'))}},{key:"hasFocus",value:function(){return this._hasFocus}},{key:"isCollapsed",value:function(){return this._anchorOffset===this._focusOffset}},{key:"isBackward",value:function(){return this._anchorOffset>this._focusOffset}},{key:"getAnchorOffset",value:function(){return this._hasFocus?this._anchorOffset:null}},{key:"getFocusOffset",value:function(){return this._hasFocus?this._focusOffset:null}},{key:"getStartOffset",value:function(){return this._hasFocus?Math.min(this._anchorOffset,this._focusOffset):null}},{key:"getEndOffset",value:function(){return this._hasFocus?Math.max(this._anchorOffset,this._focusOffset):null}},{key:"overlaps",value:function(t,s){return this.hasFocus()&&this.getStartOffset()<=s&&t<=this.getEndOffset()}}]),f})();f(u,{blur:!0,focus:!0,update:!0}),m.exports=u},328,[4,5,329]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),_=r(d[3]),o=r(d[4]),v=r(d[5])({__types:!0});var E={emit:function(t,n,s,_,o,v,E){return this.__getEventEmitter().emit(t,n,s,_,o,v,E)},emitAndHold:function(t,n,s,_,o,v,E){return this.__getEventEmitter().emitAndHold(t,n,s,_,o,v,E)},addListener:function(t,n,s){return this.__getEventEmitter().addListener(t,n,s)},once:function(t,n,s){return this.__getEventEmitter().once(t,n,s)},addRetroactiveListener:function(t,n,s){return this.__getEventEmitter().addRetroactiveListener(t,n,s)},addListenerMap:function(t,n){return this.__getEventEmitter().addListenerMap(t,n)},addRetroactiveListenerMap:function(t,n){return this.__getEventEmitter().addListenerMap(t,n)},removeAllListeners:function(){this.__getEventEmitter().removeAllListeners()},removeCurrentListener:function(){this.__getEventEmitter().removeCurrentListener()},releaseHeldEventType:function(t){this.__getEventEmitter().releaseHeldEventType(t)},__getEventEmitter:function(){if(!this.__eventEmitter){var t=new n,o=new _;this.__eventEmitter=new s(t,o)}return this.__eventEmitter}};m.exports=function(n,s){o(s,'Must supply set of valid event types');var _=n.prototype||n;o(!_.__eventEmitter,'An active emitter is already mixed in');var u=n.constructor;u&&o(u===Object||u===Function,'Mix EventEmitter into a class, not an instance'),_.hasOwnProperty(v)?t(_.__types,s):_.__types?_.__types=t({},_.__types,s):_.__types=s,t(_,E)}},329,[24,48,330,331,16,332]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=(function(){function s(n,l){t(this,s),this._emitter=n,this._eventHolder=l,this._currentEventToken=null,this._emittingHeldEvents=!1}return n(s,[{key:"addListener",value:function(t,n,s){return this._emitter.addListener(t,n,s)}},{key:"once",value:function(t,n,s){return this._emitter.once(t,n,s)}},{key:"addRetroactiveListener",value:function(t,n,s){var l=this._emitter.addListener(t,n,s);return this._emittingHeldEvents=!0,this._eventHolder.emitToListener(t,n,s),this._emittingHeldEvents=!1,l}},{key:"removeAllListeners",value:function(t){this._emitter.removeAllListeners(t)}},{key:"removeCurrentListener",value:function(){this._emitter.removeCurrentListener()}},{key:"listeners",value:function(t){return this._emitter.listeners(t)}},{key:"emit",value:function(t){for(var n,s=arguments.length,l=new Array(s>1?s-1:0),o=1;o<s;o++)l[o-1]=arguments[o];(n=this._emitter).emit.apply(n,[t].concat(l))}},{key:"emitAndHold",value:function(t){for(var n,s,l=arguments.length,o=new Array(l>1?l-1:0),u=1;u<l;u++)o[u-1]=arguments[u];this._currentEventToken=(n=this._eventHolder).holdEvent.apply(n,[t].concat(o)),(s=this._emitter).emit.apply(s,[t].concat(o)),this._currentEventToken=null}},{key:"releaseCurrentEvent",value:function(){this._currentEventToken?this._eventHolder.releaseEvent(this._currentEventToken):this._emittingHeldEvents&&this._eventHolder.releaseCurrentEvent()}},{key:"releaseHeldEventType",value:function(t){this._eventHolder.releaseEventType(t)}}]),s})();m.exports=s},330,[4,5]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),s=r(d[2]),v=(function(){function v(){t(this,v),this._heldEvents={},this._currentEventKey=null}return n(v,[{key:"holdEvent",value:function(t){this._heldEvents[t]=this._heldEvents[t]||[];for(var n=this._heldEvents[t],s={eventType:t,index:n.length},v=arguments.length,h=new Array(v>1?v-1:0),u=1;u<v;u++)h[u-1]=arguments[u];return n.push(h),s}},{key:"emitToListener",value:function(t,n,s){var v=this,h=this._heldEvents[t];if(h){var u=this._currentEventKey;h.forEach(function(h,u){h&&(v._currentEventKey={eventType:t,index:u},n.apply(s,h))}),this._currentEventKey=u}}},{key:"releaseCurrentEvent",value:function(){s(null!==this._currentEventKey,'Not in an emitting cycle; there is no current event'),this._currentEventKey&&this.releaseEvent(this._currentEventKey)}},{key:"releaseEvent",value:function(t){delete this._heldEvents[t.eventType][t.index]}},{key:"releaseEventType",value:function(t){this._heldEvents[t]=[]}}]),v})();m.exports=v},331,[4,5,16]);
__d(function(g,r,i,a,m,e,d){"use strict";m.exports=function(n){var t;for(t in n)if(n.hasOwnProperty(t))return t;return null}},332,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=r(d[1]),o=r(d[2]),n=r(d[3]),l=r(d[4]),p=r(d[5]),h=r(d[6]),u=r(d[7]),c=r(d[8]),y=r(d[9]),b=r(d[10]),P=r(d[11]),f=r(d[12]),S=r(d[13]),x={activeOpacity:.85,delayPressOut:100,underlayColor:'black'},T={top:20,left:20,right:20,bottom:30},_=f({displayName:'TouchableHighlight',propTypes:t({},b.propTypes,{activeOpacity:p.number,underlayColor:s,style:o.style,onShowUnderlay:p.func,onHideUnderlay:p.func,hasTVPreferredFocus:p.bool,nextFocusDown:p.number,nextFocusForward:p.number,nextFocusLeft:p.number,nextFocusRight:p.number,nextFocusUp:p.number,tvParallaxProperties:p.object,testOnly_pressed:p.bool}),mixins:[n,y.Mixin.withoutDefaultFocusAndBlur],getDefaultProps:function(){return x},getInitialState:function(){return this._isMounted=!1,this.props.testOnly_pressed?t({},this.touchableGetInitialState(),{extraChildStyle:{opacity:this.props.activeOpacity},extraUnderlayStyle:{backgroundColor:this.props.underlayColor}}):t({},this.touchableGetInitialState(),{extraChildStyle:null,extraUnderlayStyle:null})},componentDidMount:function(){this._isMounted=!0,S(this.props)},componentWillUnmount:function(){this._isMounted=!1,clearTimeout(this._hideTimeout)},UNSAFE_componentWillReceiveProps:function(t){S(t)},viewConfig:{uiViewClassName:'RCTView',validAttributes:u.RCTView},touchableHandleActivePressIn:function(t){clearTimeout(this._hideTimeout),this._hideTimeout=null,this._showUnderlay(),this.props.onPressIn&&this.props.onPressIn(t)},touchableHandleActivePressOut:function(t){this._hideTimeout||this._hideUnderlay(),this.props.onPressOut&&this.props.onPressOut(t)},touchableHandleFocus:function(t){l.isTV&&this._showUnderlay(),this.props.onFocus&&this.props.onFocus(t)},touchableHandleBlur:function(t){l.isTV&&this._hideUnderlay(),this.props.onBlur&&this.props.onBlur(t)},touchableHandlePress:function(t){clearTimeout(this._hideTimeout),l.isTV||(this._showUnderlay(),this._hideTimeout=setTimeout(this._hideUnderlay,this.props.delayPressOut)),this.props.onPress&&this.props.onPress(t)},touchableHandleLongPress:function(t){this.props.onLongPress&&this.props.onLongPress(t)},touchableGetPressRectOffset:function(){return this.props.pressRetentionOffset||T},touchableGetHitSlop:function(){return this.props.hitSlop},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn},touchableGetLongPressDelayMS:function(){return this.props.delayLongPress},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut},_showUnderlay:function(){this._isMounted&&this._hasPressHandler()&&(this.setState({extraChildStyle:{opacity:this.props.activeOpacity},extraUnderlayStyle:{backgroundColor:this.props.underlayColor}}),this.props.onShowUnderlay&&this.props.onShowUnderlay())},_hideUnderlay:function(){clearTimeout(this._hideTimeout),this._hideTimeout=null,this.props.testOnly_pressed||this._hasPressHandler()&&(this.setState({extraChildStyle:null,extraUnderlayStyle:null}),this.props.onHideUnderlay&&this.props.onHideUnderlay())},_hasPressHandler:function(){return!!(this.props.onPress||this.props.onPressIn||this.props.onPressOut||this.props.onLongPress)},render:function(){var t=h.Children.only(this.props.children);return h.createElement(P,{accessible:!1!==this.props.accessible,accessibilityLabel:this.props.accessibilityLabel,accessibilityHint:this.props.accessibilityHint,accessibilityRole:this.props.accessibilityRole,accessibilityStates:this.props.accessibilityStates,accessibilityState:this.props.accessibilityState,accessibilityActions:this.props.accessibilityActions,onAccessibilityAction:this.props.onAccessibilityAction,style:c.compose(this.props.style,this.state.extraUnderlayStyle),onLayout:this.props.onLayout,hitSlop:this.props.hitSlop,isTVSelectable:!0,tvParallaxProperties:this.props.tvParallaxProperties,hasTVPreferredFocus:this.props.hasTVPreferredFocus,nextFocusDown:this.props.nextFocusDown,nextFocusForward:this.props.nextFocusForward,nextFocusLeft:this.props.nextFocusLeft,nextFocusRight:this.props.nextFocusRight,nextFocusUp:this.props.nextFocusUp,focusable:!1!==this.props.focusable&&void 0!==this.props.onPres
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),s=r(d[4]),c=r(d[5]),u={showActionSheetWithOptions:function(t,u){s('object'==typeof t&&null!==t,'Options must be a valid object'),s('function'==typeof u,'Must provide a valid callback'),s(l.default,"ActionSheetManager does't exist");var f=t.tintColor,h=(0,n.default)(t,["tintColor"]);l.default.showActionSheetWithOptions((0,o.default)({},h,{tintColor:c(f)}),u)},showShareActionSheetWithOptions:function(t,n,u){s('object'==typeof t&&null!==t,'Options must be a valid object'),s('function'==typeof n,'Must provide a valid failureCallback'),s('function'==typeof u,'Must provide a valid successCallback'),s(l.default,"ActionSheetManager does't exist"),l.default.showShareActionSheetWithOptions((0,o.default)({},t,{tintColor:c(t.tintColor)}),n,u)}};m.exports=u},334,[3,53,55,335,16,84]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('ActionSheetManager');e.default=u},335,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),o=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),c=r(d[4]),f=r(d[5]),l=r(d[6]),p=r(d[7]),y=r(d[8]),h=r(d[9]),k=r(d[10]),C=r(d[11]),b={},v=1,T={},A=new Map,R=new Map,w=function(n){return n()},H=!1,S={setWrapperComponentProvider:function(t){n=t},enableFabricIndicator:function(n){H=n},registerConfig:function(n){n.forEach(function(n){n.run?S.registerRunnable(n.appKey,n.run):(h(null!=n.component,"AppRegistry.registerConfig(...): Every config is expected to set either `run` or `component`, but `%s` has neither.",n.appKey),S.registerComponent(n.appKey,n.component,n.section))})},registerComponent:function(t,o,s){var u=C();return b[t]={componentProvider:o,run:function(t){k(w(o,u),t.initialProps,t.rootTag,n&&n(t),t.fabric,H,u)}},s&&(T[t]=b[t]),t},registerRunnable:function(n,t){return b[n]={run:t},n},registerSection:function(n,t){S.registerComponent(n,t,!0)},getAppKeys:function(){return Object.keys(b)},getSectionKeys:function(){return Object.keys(T)},getSections:function(){return(0,o.default)({},T)},getRunnable:function(n){return b[n]},getRegistry:function(){return{sections:S.getSectionKeys(),runnables:(0,o.default)({},b)}},setComponentProviderInstrumentationHook:function(n){w=n},runApplication:function(n,t){var o='Running "'+n+'" with '+JSON.stringify(t);y(o),f.addSource('AppRegistry.runApplication'+v++,function(){return o}),h(b[n]&&b[n].run,"\""+n+"\" has not been registered. This can happen if:\n* Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.\n* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called."),p.setActiveScene({name:n}),b[n].run(t)},unmountApplicationComponentAtRootTag:function(n){l.unmountComponentAtNodeAndRemoveContainer(n)},registerHeadlessTask:function(n,t){this.registerCancellableHeadlessTask(n,t,function(){return function(){}})},registerCancellableHeadlessTask:function(n,t,o){A.has(n)&&console.warn("registerHeadlessTask or registerCancellableHeadlessTask called multiple times for same key '"+n+"'"),A.set(n,t),R.set(n,o)},startHeadlessTask:function(n,t,o){var c=A.get(t);if(!c)return console.warn("No task registered for key "+t),void(s.default&&s.default.notifyTaskFinished(n));c()(o).then(function(){s.default&&s.default.notifyTaskFinished(n)}).catch(function(t){console.error(t),s.default&&t instanceof u.default&&s.default.notifyTaskRetry(n).then(function(t){t||s.default.notifyTaskFinished(n)})})},cancelHeadlessTask:function(n,t){var o=R.get(t);if(!o)throw new Error("No task canceller registered for key '"+t+"'");o()()}};c.registerCallableModule('AppRegistry',S),m.exports=S},336,[3,53,337,338,29,339,92,343,156,16,344,155]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])).get('HeadlessJsTaskSupport');e.default=s},337,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2])),l=t(r(d[3])),n=t(r(d[4])),o=(function(t){function o(){return(0,u.default)(this,o),(0,f.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,n.default)(o,t),o})((0,t(r(d[5])).default)(Error));e.default=o},338,[3,4,6,9,10,100]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=t(r(d[1])),l=t(r(d[2])),n=t(r(d[3])),o=t(r(d[4])),c=t(r(d[5])),s=r(d[6]),f=r(d[7]);function x(){_.addFileSource('react_hierarchy.txt',function(){return r(d[8])()})}var _=(function(){function t(){(0,l.default)(this,t)}return(0,n.default)(t,null,[{key:"_maybeInit",value:function(){t._subscription||(t._subscription=s.addListener('collectBugExtraData',t.collectExtraData,null),x()),t._redboxSubscription||(t._redboxSubscription=s.addListener('collectRedBoxExtraData',t.collectExtraData,null))}},{key:"addSource",value:function(u,l){return this._addSource(u,l,t._extraSources)}},{key:"addFileSource",value:function(u,l){return this._addSource(u,l,t._fileSources)}},{key:"_addSource",value:function(u,l,n){return t._maybeInit(),n.has(u)&&console.warn("BugReporting.add* called multiple times for same key '"+u+"'"),n.set(u,l),{remove:function(){n.delete(u)}}}},{key:"collectExtraData",value:function(){var l={},n=t._extraSources,s=Array.isArray(n),x=0;for(n=s?n:n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var _;if(s){if(x>=n.length)break;_=n[x++]}else{if((x=n.next()).done)break;_=x.value}var b=_,y=(0,u.default)(b,2),S=y[0],v=y[1];l[S]=v()}var p={},k=t._fileSources,D=Array.isArray(k),E=0;for(k=D?k:k["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var h;if(D){if(E>=k.length)break;h=k[E++]}else{if((E=k.next()).done)break;h=E.value}var B=h,A=(0,u.default)(B,2),R=A[0],w=A[1];p[R]=w()}return f('BugReporting extraData:',l),null!=o.default&&null!=o.default.setExtraData&&o.default.setExtraData(l,p),null!=c.default&&null!=c.default.setExtraData&&c.default.setExtraData(l,'From BugReporting.js'),{extras:l,files:p}}}]),t})();_._extraSources=new Map,_._fileSources=new Map,_._subscription=null,_._redboxSubscription=null,m.exports=_},339,[3,25,4,5,340,341,45,156,342]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('BugReporting');e.default=u},340,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('RedBox');e.default=u},341,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(){try{return"React tree dumps have been temporarily disabled while React is upgraded to Fiber."}catch(t){return'Failed to dump react tree: '+t}}},342,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=[],t={name:'default'},c={setActiveScene:function(c){t=c,n.forEach(function(n){return n(t)})},getActiveScene:function(){return t},addActiveSceneChangedListener:function(t){return n.push(t),{remove:function(){n=n.filter(function(n){return t!==n})}}}};m.exports=c},343,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),c=r(d[4]),p=r(d[5]),u=r(d[6]),s=r(d[7]);r(d[8]),m.exports=function(t,f,v,_,E,T,x){var A;s(v,'Expect to have a valid rootTag, instead got ',v);var R=p.createElement(o.default.Provider,{value:null!=(A=x)?A:l.default},p.createElement(c,{rootTag:v,WrapperComponent:_},p.createElement(t,(0,n.default)({},f,{rootTag:v})),!0===E&&!0===T?p.createElement(u,null):null));l.default.startTimespan('renderApplication_React_render'),E?r(d[9]).render(R,v):r(d[10]).render(R,v),l.default.stopTimespan('renderApplication_React_render')}},344,[3,24,154,345,302,59,346,16,347,348,92]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),c=r(d[1])(r(d[2])),n=t(r(d[3])),o=c.createContext(n.default);m.exports=o},345,[3,2,59,154]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]);var f=n.create({container:{alignItems:'center',justifyContent:'center',backgroundColor:'rgba(0,0,0, 0.25)',position:'absolute',top:0,right:0,padding:2},text:{fontSize:6,color:'#ffffff'}});m.exports=function(){return t.createElement(c,{style:f.container},t.createElement(o,{style:f.text},"FABRIC"))}},346,[59,62,199,90]);
__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),o=r(d[1]);function v(){}if(t.isTV){var u=new o,f=new Set;u.enable(this,function(t,o){if(o&&'menu'===o.eventType){for(var v=!0,u=Array.from(f.values()).reverse(),s=0;s<u.length;++s)if(u[s]()){v=!1;break}v&&n.exitApp()}}),n={exitApp:v,addEventListener:function(t,o){return f.add(o),{remove:function(){return n.removeEventListener(t,o)}}},removeEventListener:function(n,t){f.delete(t)}}}else n={exitApp:v,addEventListener:function(n,t){return{remove:v}},removeEventListener:function(n,t){}};m.exports=n},347,[57,209]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,c=r(d[0]);t=r(d[1]),c.BatchedBridge.registerCallableModule('ReactFabric',t),m.exports=t},348,[162,349]);
__d(function(e,t,n,r,i,l,a){"use strict";var o=t(a[0]);t(a[1]);var u=t(a[2]),c=t(a[3]),s=t(a[4]);function f(e){return e.name="Invariant Violation",e}var d=null,p={};function h(){if(d)for(var e in p){var t=p[e],n=d.indexOf(e);if(!(-1<n))throw f(Error("EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `"+e+"`."));if(!g[n]){if(!t.extractEvents)throw f(Error("EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `"+e+"` does not."));for(var r in g[n]=t,n=t.eventTypes){var i=void 0,l=n[r],a=t,o=r;if(y.hasOwnProperty(o))throw f(Error("EventPluginHub: More than one plugin attempted to publish the same event name, `"+o+"`."));y[o]=l;var u=l.phasedRegistrationNames;if(u){for(i in u)u.hasOwnProperty(i)&&m(u[i],a);i=!0}else l.registrationName?(m(l.registrationName,a),i=!0):i=!1;if(!i)throw f(Error("EventPluginRegistry: Failed to publish event `"+r+"` for plugin `"+e+"`."))}}}}function m(e,t){if(v[e])throw f(Error("EventPluginHub: More than one plugin attempted to publish the same registration name, `"+e+"`."));v[e]=t}var g=[],y={},v={};function b(e,t,n,r,i,l,a,o,u){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(e){this.onError(e)}}var T=!1,E=null,x=!1,S=null,w={onError:function(e){T=!0,E=e}};function k(e,t,n,r,i,l,a,o,u){T=!1,E=null,b.apply(w,arguments)}function P(e,t,n,r,i,l,a,o,u){if(k.apply(this,arguments),T){if(!T)throw f(Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue."));var c=E;T=!1,E=null,x||(x=!0,S=c)}}var C=null,_=null,R=null;function N(e,t,n){var r=e.type||"unknown-event";e.currentTarget=R(n),P(r,t,void 0,e),e.currentTarget=null}function I(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))throw f(Error("executeDirectDispatch(...): Invalid `event`."));return e.currentTarget=t?R(n):null,t=t?t(e):null,e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,t}function z(e,t){if(null==t)throw f(Error("accumulateInto(...): Accumulated items must not be null or undefined."));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function U(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var M=null;function A(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)N(e,t[r],n[r]);else t&&N(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}var D=function(e){if(d)throw f(Error("EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."));d=Array.prototype.slice.call(e),h()},F=function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!p.hasOwnProperty(t)||p[t]!==r){if(p[t])throw f(Error("EventPluginRegistry: Cannot inject two different event plugins using the same name, `"+t+"`."));p[t]=r,n=!0}}n&&h()};function j(e,t){var n=e.stateNode;if(!n)return null;var r=C(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw f(Error("Expected `"+t+"` listener to be a function, instead got a value of `"+typeof n+"` type."));return n}function O(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function W(e,t,n){for(var r=[];e;)r.push(e),e=O(e);for(e=r.length;0<e--;)t(r[e],"captured",n);for(e=0;e<r.length;e++)t(r[e],"bubbled",n)}function H(e,t,n){(t=j(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=z(n._dispatchListeners,t),n._dispatchInstances=z(n._dispatchInstances,e))}function B(e){e&&e.dispatchConfig.phasedRegistrationNames&&W(e._targetInst,H,e)}function Q(e){if(e&&e.dis
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),f=r(d[7]),v=r(d[8]),p=r(d[9]),h=r(d[10]),_=(function(t){function f(){var t;(0,n.default)(this,f),(t=(0,u.default)(this,(0,l.default)(f).call(this,c.default)))._supportedEvents=['change','memoryWarning','blur','focus'],t.isAvailable=!0,t._eventHandlers=t._supportedEvents.reduce(function(t,n){return t[n]=new Map,t},{}),t.currentState=c.default.getConstants().initialAppState;var s=!1;return t.addListener('appStateDidChange',function(n){s=!0,t.currentState=n.app_state}),c.default.getCurrentAppState(function(n){s||t.currentState===n.app_state||(t.currentState=n.app_state,t.emit('appStateDidChange',n))},p),t}return(0,o.default)(f,t),(0,s.default)(f,[{key:"addEventListener",value:function(t,n){switch(h(-1!==this._supportedEvents.indexOf(t),'Trying to subscribe to unknown event: "%s"',t),t){case'change':this._eventHandlers[t].set(n,this.addListener('appStateDidChange',function(t){n(t.app_state)}));break;case'memoryWarning':this._eventHandlers[t].set(n,this.addListener('memoryWarning',n));break;case'blur':case'focus':this._eventHandlers[t].set(n,this.addListener('appStateFocusChange',function(s){'blur'!==t||s||n(),'focus'===t&&s&&n()}))}}},{key:"removeEventListener",value:function(t,n){h(-1!==this._supportedEvents.indexOf(t),'Trying to remove listener for unknown event: "%s"',t),this._eventHandlers[t].has(n)&&(this._eventHandlers[t].get(n).remove(),this._eventHandlers[t].delete(n))}}]),f})(v);function y(){h(!1,"Cannot use AppState module when native RCTAppState is not included in the build.\nEither include it, or check AppState.isAvailable before calling any methods.")}var S=(function(t){function c(){var t,s;(0,n.default)(this,c);for(var o=arguments.length,f=new Array(o),v=0;v<o;v++)f[v]=arguments[v];return(s=(0,u.default)(this,(t=(0,l.default)(c)).call.apply(t,[this].concat(f)))).isAvailable=!1,s.currentState=null,s}return(0,o.default)(c,t),(0,s.default)(c,[{key:"addEventListener",value:function(){y()}},{key:"removeEventListener",value:function(){y()}},{key:"addListener",value:function(){y()}},{key:"removeAllListeners",value:function(){y()}},{key:"removeSubscription",value:function(){y()}}]),c})(f);_=c.default?new _:new S,m.exports=_},350,[3,4,5,6,9,10,351,48,125,352,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).getEnforcing('AppState');e.default=u},351,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(){for(var o=arguments.length,n=new Array(o),s=0;s<o;s++)n[s]=arguments[s];if(1===n.length&&n[0]instanceof Error){var t=n[0];console.error('Error: "'+t.message+'". Stack:\n'+t.stack)}else console.error.apply(console,n)}},352,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),o=u.default,s={_getRequests:[],_getKeys:[],_immediate:null,getItem:function(t,n){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(u,l){o.multiGet([t],function(t,o){var s=o&&o[0]&&o[0][1]?o[0][1]:null,f=c(t);n&&n(f&&f[0],s),f?l(f[0]):u(s)})})},setItem:function(t,n,u){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(l,s){o.multiSet([[t,n]],function(t){var n=c(t);u&&u(n&&n[0]),n?s(n[0]):l(null)})})},removeItem:function(t,n){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(u,l){o.multiRemove([t],function(t){var o=c(t);n&&n(o&&o[0]),o?l(o[0]):u(null)})})},mergeItem:function(t,n,u){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(l,s){o.multiMerge([[t,n]],function(t){var n=c(t);u&&u(n&&n[0]),n?s(n[0]):l(null)})})},clear:function(t){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(n,u){o.clear(function(l){t&&t(f(l)),l&&f(l)?u(f(l)):n(null)})})},getAllKeys:function(t){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(n,u){o.getAllKeys(function(l,o){t&&t(f(l),o),l?u(f(l)):n(o)})})},flushGetRequests:function(){var t=this._getRequests,u=this._getKeys;this._getRequests=[],this._getKeys=[],(0,l.default)(o,'RCTAsyncStorage not available'),o.multiGet(u,function(u,l){var o={};l&&l.forEach(function(t){var u=(0,n.default)(t,2),l=u[0],s=u[1];return o[l]=s,s});for(var s=t.length,c=0;c<s;c++){var f=t[c],v=f.keys.map(function(t){return[t,o[t]]});f.callback&&f.callback(null,v),f.resolve&&f.resolve(v)}})},multiGet:function(t,n){var u=this;this._immediate||(this._immediate=setImmediate(function(){u._immediate=null,u.flushGetRequests()}));var l={keys:t,callback:n,keyIndex:this._getKeys.length,resolve:null,reject:null},o=new Promise(function(t,n){l.resolve=t,l.reject=n});return this._getRequests.push(l),t.forEach(function(t){-1===u._getKeys.indexOf(t)&&u._getKeys.push(t)}),o},multiSet:function(t,n){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(u,l){o.multiSet(t,function(t){var o=c(t);n&&n(o),o?l(o):u(null)})})},multiRemove:function(t,n){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(u,l){o.multiRemove(t,function(t){var o=c(t);n&&n(o),o?l(o):u(null)})})},multiMerge:function(t,n){return(0,l.default)(o,'RCTAsyncStorage not available'),new Promise(function(u,l){o.multiMerge(t,function(t){var o=c(t);n&&n(o),o?l(o):u(null)})})}};function c(t){return t?(Array.isArray(t)?t:[t]).map(function(t){return f(t)}):null}function f(t){if(!t)return null;var n=new Error(t.message);return n.key=t.key,n}o.multiMerge||(delete s.mergeItem,delete s.multiMerge),m.exports=s},353,[3,25,354,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),c=o.get('AsyncSQLiteDBStorage')||o.get('AsyncLocalStorage');e.default=c},354,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1]));m.exports={getString:function(){return t.default.getString()},setString:function(n){t.default.setString(n)}}},355,[3,356]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).getEnforcing('Clipboard');e.default=o},356,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=(function(){function s(){n(this,s)}return o(s,null,[{key:"open",value:function(n){return t.async(function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error('DatePickerAndroid is not supported on this platform.');case 1:case"end":return t.stop()}},null,this)}}]),s})();s.dateSetAction='dateSetAction',s.dismissedAction='dismissedAction',m.exports=s},357,[270,4,5]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1]));m.exports=t.default},358,[3,65]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),n=o(r(d[1])),l=o(r(d[2])),t={canRecordVideos:function(o){return(0,l.default)(n.default,'ImagePickerIOS is not available'),n.default.canRecordVideos(o)},canUseCamera:function(o){return(0,l.default)(n.default,'ImagePickerIOS is not available'),n.default.canUseCamera(o)},openCameraDialog:function(o,t,u){(0,l.default)(n.default,'ImagePickerIOS is not available');var s={videoMode:!0,unmirrorFrontFacingCamera:!1};return null!=o.videoMode&&(s.videoMode=o.videoMode),null!=o.unmirrorFrontFacingCamera&&(s.unmirrorFrontFacingCamera=o.unmirrorFrontFacingCamera),n.default.openCameraDialog(s,t,u)},openSelectDialog:function(o,t,u){(0,l.default)(n.default,'ImagePickerIOS is not available');var s={showImages:!0,showVideos:!1};return null!=o.showImages&&(s.showImages=o.showImages),null!=o.showVideos&&(s.showVideos=o.showVideos),n.default.openSelectDialog(s,t,u)},removePendingVideo:function(o){(0,l.default)(n.default,'ImagePickerIOS is not available'),n.default.removePendingVideo(o)},clearAllPendingVideos:function(){(0,l.default)(n.default,'ImagePickerIOS is not available'),n.default.clearAllPendingVideos()}};m.exports=t},359,[3,360,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('ImagePickerIOS');e.default=u},360,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),f=t(r(d[5])),s=t(r(d[6])),v=(r(d[7]),r(d[8])),c=(r(d[9]),r(d[10])),L=(function(t){function v(){return(0,n.default)(this,v),(0,l.default)(this,(0,o.default)(v).call(this,s.default))}return(0,f.default)(v,t),(0,u.default)(v,[{key:"addEventListener",value:function(t,n){this.addListener(t,n)}},{key:"removeEventListener",value:function(t,n){this.removeListener(t,n)}},{key:"openURL",value:function(t){return this._validateURL(t),s.default.openURL(t)}},{key:"canOpenURL",value:function(t){return this._validateURL(t),s.default.canOpenURL(t)}},{key:"openSettings",value:function(){return s.default.openSettings()}},{key:"getInitialURL",value:function(){return s.default.getInitialURL()}},{key:"sendIntent",value:function(t,n){return new Promise(function(t,n){return n(new Error('Unsupported'))})}},{key:"_validateURL",value:function(t){c('string'==typeof t,'Invalid URL: should be a string. Was: '+t),c(t,'Invalid URL: cannot be empty')}}]),v})(v);m.exports=new L},361,[3,4,5,6,9,10,362,225,125,57,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[2])),f='android'===n(r(d[3])).default.OS?o.getEnforcing('IntentAndroid'):o.getEnforcing('LinkingManager');e.default=f},362,[3,2,22,57]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),o=r(d[1]),t=o.currentCentroidXOfTouchesChangedAfter,u=o.currentCentroidYOfTouchesChangedAfter,s=o.previousCentroidXOfTouchesChangedAfter,c=o.previousCentroidYOfTouchesChangedAfter,p=o.currentCentroidX,v=o.currentCentroidY,h={_initializeGestureState:function(n){n.moveX=0,n.moveY=0,n.x0=0,n.y0=0,n.dx=0,n.dy=0,n.vx=0,n.vy=0,n.numberActiveTouches=0,n._accountsForMovesUpTo=0},_updateGestureStateOnMove:function(n,o){n.numberActiveTouches=o.numberActiveTouches,n.moveX=t(o,n._accountsForMovesUpTo),n.moveY=u(o,n._accountsForMovesUpTo);var p=n._accountsForMovesUpTo,v=s(o,p),h=t(o,p),l=c(o,p),S=u(o,p),R=n.dx+(h-v),T=n.dy+(S-l),f=o.mostRecentTimeStamp-n._accountsForMovesUpTo;n.vx=(R-n.dx)/f,n.vy=(T-n.dy)/f,n.dx=R,n.dy=T,n._accountsForMovesUpTo=o.mostRecentTimeStamp},create:function(o){var t={handle:null},u={stateID:Math.random(),moveX:0,moveY:0,x0:0,y0:0,dx:0,dy:0,vx:0,vy:0,numberActiveTouches:0,_accountsForMovesUpTo:0};return{panHandlers:{onStartShouldSetResponder:function(n){return null!=o.onStartShouldSetPanResponder&&o.onStartShouldSetPanResponder(n,u)},onMoveShouldSetResponder:function(n){return null!=o.onMoveShouldSetPanResponder&&o.onMoveShouldSetPanResponder(n,u)},onStartShouldSetResponderCapture:function(n){return 1===n.nativeEvent.touches.length&&h._initializeGestureState(u),u.numberActiveTouches=n.touchHistory.numberActiveTouches,null!=o.onStartShouldSetPanResponderCapture&&o.onStartShouldSetPanResponderCapture(n,u)},onMoveShouldSetResponderCapture:function(n){var t=n.touchHistory;return u._accountsForMovesUpTo!==t.mostRecentTimeStamp&&(h._updateGestureStateOnMove(u,t),!!o.onMoveShouldSetPanResponderCapture&&o.onMoveShouldSetPanResponderCapture(n,u))},onResponderGrant:function(s){return t.handle||(t.handle=n.createInteractionHandle()),u.x0=p(s.touchHistory),u.y0=v(s.touchHistory),u.dx=0,u.dy=0,o.onPanResponderGrant&&o.onPanResponderGrant(s,u),null==o.onShouldBlockNativeResponder||o.onShouldBlockNativeResponder(s,u)},onResponderReject:function(n){l(t,o.onPanResponderReject,n,u)},onResponderRelease:function(n){l(t,o.onPanResponderRelease,n,u),h._initializeGestureState(u)},onResponderStart:function(n){var t=n.touchHistory;u.numberActiveTouches=t.numberActiveTouches,o.onPanResponderStart&&o.onPanResponderStart(n,u)},onResponderMove:function(n){var t=n.touchHistory;u._accountsForMovesUpTo!==t.mostRecentTimeStamp&&(h._updateGestureStateOnMove(u,t),o.onPanResponderMove&&o.onPanResponderMove(n,u))},onResponderEnd:function(n){var s=n.touchHistory;u.numberActiveTouches=s.numberActiveTouches,l(t,o.onPanResponderEnd,n,u)},onResponderTerminate:function(n){l(t,o.onPanResponderTerminate,n,u),h._initializeGestureState(u)},onResponderTerminationRequest:function(n){return null==o.onPanResponderTerminationRequest||o.onPanResponderTerminationRequest(n,u)}},getInteractionHandle:function(){return t.handle}}}};function l(o,t,u,s){o.handle&&(n.clearInteractionHandle(o.handle),o.handle=null),t&&t(u,s)}m.exports=h},363,[225,364]);
__d(function(g,r,i,a,m,e,d){var n={centroidDimension:function(t,o,u,c){var f=t.touchBank,s=0,h=0,v=1===t.numberActiveTouches?t.touchBank[t.indexOfSingleActiveTouch]:null;if(null!==v)v.touchActive&&v.currentTimeStamp>o&&(s+=c&&u?v.currentPageX:c&&!u?v.currentPageY:!c&&u?v.previousPageX:v.previousPageY,h=1);else for(var C=0;C<f.length;C++){var l=f[C];if(null!==l&&void 0!==l&&l.touchActive&&l.currentTimeStamp>=o){s+=c&&u?l.currentPageX:c&&!u?l.currentPageY:!c&&u?l.previousPageX:l.previousPageY,h++}}return h>0?s/h:n.noCentroid},currentCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!0)},currentCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!0)},previousCentroidXOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!0,!1)},previousCentroidYOfTouchesChangedAfter:function(t,o){return n.centroidDimension(t,o,!1,!1)},currentCentroidX:function(t){return n.centroidDimension(t,0,!0,!0)},currentCentroidY:function(t){return n.centroidDimension(t,0,!1,!0)},noCentroid:-1};m.exports=n},364,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n(r(d[1])),o=n(r(d[2])),t=n(r(d[3])),E=n(r(d[4])),A=n(r(d[5])),u=n(r(d[6])),_=n(r(d[7])),S=(r(d[8]),Object.freeze({GRANTED:'granted',DENIED:'denied',NEVER_ASK_AGAIN:'never_ask_again'})),l=Object.freeze({READ_CALENDAR:'android.permission.READ_CALENDAR',WRITE_CALENDAR:'android.permission.WRITE_CALENDAR',CAMERA:'android.permission.CAMERA',READ_CONTACTS:'android.permission.READ_CONTACTS',WRITE_CONTACTS:'android.permission.WRITE_CONTACTS',GET_ACCOUNTS:'android.permission.GET_ACCOUNTS',ACCESS_FINE_LOCATION:'android.permission.ACCESS_FINE_LOCATION',ACCESS_COARSE_LOCATION:'android.permission.ACCESS_COARSE_LOCATION',RECORD_AUDIO:'android.permission.RECORD_AUDIO',READ_PHONE_STATE:'android.permission.READ_PHONE_STATE',CALL_PHONE:'android.permission.CALL_PHONE',READ_CALL_LOG:'android.permission.READ_CALL_LOG',WRITE_CALL_LOG:'android.permission.WRITE_CALL_LOG',ADD_VOICEMAIL:'com.android.voicemail.permission.ADD_VOICEMAIL',USE_SIP:'android.permission.USE_SIP',PROCESS_OUTGOING_CALLS:'android.permission.PROCESS_OUTGOING_CALLS',BODY_SENSORS:'android.permission.BODY_SENSORS',SEND_SMS:'android.permission.SEND_SMS',RECEIVE_SMS:'android.permission.RECEIVE_SMS',READ_SMS:'android.permission.READ_SMS',RECEIVE_WAP_PUSH:'android.permission.RECEIVE_WAP_PUSH',RECEIVE_MMS:'android.permission.RECEIVE_MMS',READ_EXTERNAL_STORAGE:'android.permission.READ_EXTERNAL_STORAGE',WRITE_EXTERNAL_STORAGE:'android.permission.WRITE_EXTERNAL_STORAGE'}),R=(function(){function n(){(0,t.default)(this,n),this.PERMISSIONS=l,this.RESULTS=S}return(0,E.default)(n,[{key:"checkPermission",value:function(n){return console.warn('"PermissionsAndroid.checkPermission" is deprecated. Use "PermissionsAndroid.check" instead'),console.warn('"PermissionsAndroid" module works only for Android platform.'),Promise.resolve(!1)}},{key:"check",value:function(n){return console.warn('"PermissionsAndroid" module works only for Android platform.'),Promise.resolve(!1)}},{key:"requestPermission",value:function(n,s){var t;return o.default.async(function(E){for(;;)switch(E.prev=E.next){case 0:return console.warn('"PermissionsAndroid.requestPermission" is deprecated. Use "PermissionsAndroid.request" instead'),console.warn('"PermissionsAndroid" module works only for Android platform.'),E.abrupt("return",Promise.resolve(!1));case 4:return E.next=6,o.default.awrap(this.request(n,s));case 6:return t=E.sent,E.abrupt("return",t===this.RESULTS.GRANTED);case 8:case"end":return E.stop()}},null,this)}},{key:"request",value:function(n,t){return o.default.async(function(E){for(;;)switch(E.prev=E.next){case 0:return console.warn('"PermissionsAndroid" module works only for Android platform.'),E.abrupt("return",Promise.resolve(this.RESULTS.DENIED));case 3:if((0,_.default)(u.default,'PermissionsAndroid is not installed correctly.'),!t){E.next=10;break}return E.next=7,o.default.awrap(u.default.shouldShowRequestPermissionRationale(n));case 7:if(!E.sent||!A.default){E.next=10;break}return E.abrupt("return",new Promise(function(o,E){var _=(0,s.default)({},t);A.default.showAlert(_,function(){return E(new Error('Error showing rationale'))},function(){return o(u.default.requestPermission(n))})}));case 10:return E.abrupt("return",u.default.requestPermission(n));case 11:case"end":return E.stop()}},null,this)}},{key:"requestMultiple",value:function(n){return console.warn('"PermissionsAndroid" module works only for Android platform.'),Promise.resolve({})}}]),n})();R=new R,m.exports=R},365,[3,53,270,4,5,143,366,16,57]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).get('PermissionsAndroid');e.default=o},366,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),u=r(d[4]),c=r(d[5]),s=new u(l.default),f=new Map,v=(function(){function t(n){var l=this;(0,o.default)(this,t),this._data={},this._remoteNotificationCompleteCallbackCalled=!1,this._isRemote=n.remote,this._isRemote&&(this._notificationId=n.notificationId),n.remote?Object.keys(n).forEach(function(t){var o=n[t];'aps'===t?(l._alert=o.alert,l._sound=o.sound,l._badgeCount=o.badge,l._category=o.category,l._contentAvailable=o['content-available'],l._threadID=o['thread-id']):l._data[t]=o}):(this._badgeCount=n.applicationIconBadgeNumber,this._sound=n.soundName,this._alert=n.alertBody,this._data=n.userInfo,this._category=n.category)}return(0,n.default)(t,null,[{key:"presentLocalNotification",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.presentLocalNotification(t)}},{key:"scheduleLocalNotification",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.scheduleLocalNotification(t)}},{key:"cancelAllLocalNotifications",value:function(){c(l.default,'PushNotificationManager is not available.'),l.default.cancelAllLocalNotifications()}},{key:"removeAllDeliveredNotifications",value:function(){c(l.default,'PushNotificationManager is not available.'),l.default.removeAllDeliveredNotifications()}},{key:"getDeliveredNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.getDeliveredNotifications(t)}},{key:"removeDeliveredNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.removeDeliveredNotifications(t)}},{key:"setApplicationIconBadgeNumber",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.setApplicationIconBadgeNumber(t)}},{key:"getApplicationIconBadgeNumber",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.getApplicationIconBadgeNumber(t)}},{key:"cancelLocalNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.cancelLocalNotifications(t)}},{key:"getScheduledLocalNotifications",value:function(t){c(l.default,'PushNotificationManager is not available.'),l.default.getScheduledLocalNotifications(t)}},{key:"addEventListener",value:function(o,n){var l;c('notification'===o||'register'===o||'registrationError'===o||'localNotification'===o,'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events'),'notification'===o?l=s.addListener("remoteNotificationReceived",function(o){n(new t(o))}):'localNotification'===o?l=s.addListener("localNotificationReceived",function(o){n(new t(o))}):'register'===o?l=s.addListener("remoteNotificationsRegistered",function(t){n(t.deviceToken)}):'registrationError'===o&&(l=s.addListener("remoteNotificationRegistrationError",function(t){n(t)})),f.set(o,l)}},{key:"removeEventListener",value:function(t,o){c('notification'===t||'register'===t||'registrationError'===t||'localNotification'===t,'PushNotificationIOS only supports `notification`, `register`, `registrationError`, and `localNotification` events');var n=f.get(t);n&&(n.remove(),f.delete(t))}},{key:"requestPermissions",value:function(t){var o={};return o=t?{alert:!!t.alert,badge:!!t.badge,sound:!!t.sound}:{alert:!0,badge:!0,sound:!0},c(l.default,'PushNotificationManager is not available.'),l.default.requestPermissions(o)}},{key:"abandonPermissions",value:function(){c(l.default,'PushNotificationManager is not available.'),l.default.abandonPermissions()}},{key:"checkPermissions",value:function(t){c('function'==typeof t,'Must provide a valid callback'),c(l.default,'PushNotificationManager is not available.'),l.default.checkPermissions(t)}},{key:"getInitialNotification",value:function(){return c(l.default,'PushNotificationManager is not available.'),l.default.getInitialNotification().then(function(o){return o&&new t(o)})}}]),(0,n.default)(t,[{key:"finish",value:function(t){this._isRemote&&this._notificationId&&!this._remoteNotificationCompleteCallbackCal
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])).get('PushNotificationManager');e.default=o},368,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),s=t(r(d[1])),n=t(r(d[2])),c=r(d[3]),l=r(d[4]),u=[],o={_settings:n.default&&n.default.getConstants().settings,get:function(t){return this._settings[t]},set:function(t){this._settings=(0,s.default)(this._settings,t),n.default.setValues(t)},watchKeys:function(t,s){'string'==typeof t&&(t=[t]),l(Array.isArray(t),'keys should be a string or array of strings');var n=u.length;return u.push({keys:t,callback:s}),n},clearWatch:function(t){t<u.length&&(u[t]={keys:[],callback:null})},_sendObservations:function(t){var s=this;Object.keys(t).forEach(function(n){var c=t[n],l=s._settings[n]!==c;s._settings[n]=c,l&&u.forEach(function(t){-1!==t.keys.indexOf(n)&&t.callback&&t.callback()})})}};c.addListener('settingsUpdated',o._sendObservations.bind(o)),m.exports=o},369,[3,24,370,45,16]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('SettingsManager');e.default=n},370,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=(t(r(d[4])),r(d[5]),r(d[6])),c=r(d[7]),l=(function(){function t(){(0,n.default)(this,t)}return(0,o.default)(t,null,[{key:"share",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return u('object'==typeof t&&null!==t,'Content to share must be a valid object'),u('string'==typeof t.url||'string'==typeof t.message,'At least one of URL and message is required'),u('object'==typeof n&&null!==n,'Options must be a valid object'),new Promise(function(o,l){var f=c(n.tintColor);u(s.default,'NativeActionSheetManager is not registered on iOS, but it should be.'),s.default.showShareActionSheetWithOptions({message:'string'==typeof t.message?t.message:void 0,url:'string'==typeof t.url?t.url:void 0,subject:n.subject,tintColor:null!=f?f:void 0,excludedActivityTypes:n.excludedActivityTypes},function(t){return l(t)},function(t,n){o(t?{action:'sharedAction',activityType:n}:{action:'dismissedAction'})})})}}]),t})();l.sharedAction='sharedAction',l.dismissedAction='dismissedAction',m.exports=l},371,[3,4,5,335,372,57,16,84]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('ShareModule');e.default=u},372,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),s=t(r(d[5])),c=(function(t){function s(){return(0,u.default)(this,s),(0,n.default)(this,(0,f.default)(s).apply(this,arguments))}return(0,l.default)(s,t),s})(r(d[6]));m.exports=new c(s.default)},373,[3,4,6,9,10,323,125]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),c=(function(){function t(){(0,s.default)(this,t)}return(0,u.default)(t,null,[{key:"open",value:function(t){return n.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:if(!o.default){n.next=4;break}return n.abrupt("return",o.default.open(t));case 4:return n.abrupt("return",Promise.reject({message:'TimePickerAndroid is not supported on this platform.'}));case 5:case"end":return n.stop()}},null,this)}}]),t})();c.timeSetAction='timeSetAction',c.dismissedAction='dismissedAction',m.exports=c},374,[3,270,4,5,375]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])).get('TimePickerAndroid');e.default=u},375,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o={show:function(o,s){t(!1,'ToastAndroid is not supported on this platform.')},showWithGravity:function(o,s,n){t(!1,'ToastAndroid is not supported on this platform.')},showWithGravityAndOffset:function(o,s,n,p,f){t(!1,'ToastAndroid is not supported on this platform.')}};m.exports=o},376,[18]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=u.default.get('window'),n=f.useState(!1)[1].bind(null,function(t){return!t}),c=f.useState(t)[0];return f.useEffect(function(){return u.default.addEventListener('change',n),u.default.get('window')!==c&&n(),function(){u.default.removeEventListener('change',n)}},[n,c]),t};var u=n(r(d[2])),f=t(r(d[3]))},377,[2,3,64,59]);
__d(function(g,r,i,a,m,e,d){'use strict';var A=r(d[0])({BOM:"\ufeff",BULLET:"\u2022",BULLET_SP:"\xa0\u2022\xa0",MIDDOT:"\xb7",MIDDOT_SP:"\xa0\xb7\xa0",MIDDOT_KATAKANA:"\u30fb",MDASH:"\u2014",MDASH_SP:"\xa0\u2014\xa0",NDASH:"\u2013",NDASH_SP:"\xa0\u2013\xa0",NBSP:"\xa0",PIZZA:"\ud83c\udf55",TRIANGLE_LEFT:"\u25c0",TRIANGLE_RIGHT:"\u25b6"});m.exports=A},378,[37]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0])(r(d[1])),n=(r(d[2]),!1),o=0;function u(u){var l=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n||(n=!0,0===u[0]&&(t.default.vibrate(),u=u.slice(1)),0!==u.length?setTimeout(function(){return f(++o,u,l,1)},u[0]):n=!1)}function f(u,l,v,c){if(n&&u===o){if(t.default.vibrate(),c>=l.length){if(!v)return void(n=!1);c=0}setTimeout(function(){return f(u,l,v,c+1)},l[c])}}var l={vibrate:function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400,f=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!n)if('number'==typeof o)t.default.vibrate();else{if(!Array.isArray(o))throw new Error('Vibration pattern should be a number or array');u(o,f)}},cancel:function(){n=!1}};m.exports=l},379,[3,380,57]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])).getEnforcing('Vibration');e.default=n},380,[2,22]);
__d(function(g,r,i,a,m,e,d){'use strict';var n,t=r(d[0]),u=r(d[1]),l=r(d[2]),o=r(d[3]),s=r(d[4]);n=(function(n){function c(){return t(this,c),l(this,o(c).apply(this,arguments))}return s(c,n),u(c,[{key:"render",value:function(){return null}}],[{key:"ignoreWarnings",value:function(n){}},{key:"install",value:function(){}},{key:"uninstall",value:function(){}}]),c})(r(d[5]).Component),m.exports=n},381,[4,5,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),s=n.shape({x:n.number,y:n.number});m.exports=s},382,[71]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),c=r(d[3]),l=c.NativeModules.RNBackgroundTimer,o=new c.NativeEventEmitter(l),s=new((function(){function t(){var u=this;(0,n.default)(this,t),this.uniqueId=0,this.callbacks={},o.addListener('backgroundTimer.timeout',function(t){if(u.callbacks[t]){var n=u.callbacks[t].callback;u.callbacks[t].interval?l.setTimeout(t,u.callbacks[t].timeout):delete u.callbacks[t],n()}})}return(0,u.default)(t,[{key:"start",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return l.start(t)}},{key:"stop",value:function(){return l.stop()}},{key:"runBackgroundTimer",value:function(t,n){var u=this,l=c.Platform.select({ios:function(){return c.NativeAppEventEmitter},android:function(){return c.DeviceEventEmitter}})();this.start(0),this.backgroundListener=l.addListener('backgroundTimer',function(){u.backgroundListener.remove(),u.backgroundClockMethod(t,n)})}},{key:"backgroundClockMethod",value:function(t,n){var u=this;this.backgroundTimer=this.setTimeout(function(){t(),u.backgroundClockMethod(t,n)},n)}},{key:"stopBackgroundTimer",value:function(){this.stop(),this.clearTimeout(this.backgroundTimer)}},{key:"setTimeout",value:function(t,n){this.uniqueId+=1;var u=this.uniqueId;return this.callbacks[u]={callback:t,interval:!1,timeout:n},l.setTimeout(u,n),u}},{key:"clearTimeout",value:function(t){this.callbacks[t]&&delete this.callbacks[t]}},{key:"setInterval",value:function(t,n){this.uniqueId+=1;var u=this.uniqueId;return this.callbacks[u]={callback:t,interval:!0,timeout:n},l.setTimeout(u,n),u}},{key:"clearInterval",value:function(t){this.callbacks[t]&&delete this.callbacks[t]}}]),t})());e.default=s},383,[3,4,5,15]);
__d(function(g,r,i,a,m,e,d){!(function(t){'use strict';var s=!1;if(!t.forceJURL)try{var h=new URL('b','http://a');h.pathname='c%20d',s='http://a/c%20d'===h.href}catch(t){}if(!s){var n=Object.create(null);n.ftp=21,n.file=0,n.gopher=70,n.http=80,n.https=443,n.ws=80,n.wss=443;var o=Object.create(null);o['%2e']='.',o['.%2e']='..',o['%2e.']='..',o['%2e%2e']='..';var l=void 0,_=/[a-zA-Z]/,c=/[a-zA-Z0-9\+\-\.]/;I.prototype={toString:function(){return this.href},get href(){if(this._isInvalid)return this._url;var t='';return''==this._username&&null==this._password||(t=this._username+(null!=this._password?':'+this._password:'')+'@'),this.protocol+(this._isRelative?'//'+t+this.host:'')+this.pathname+this._query+this._fragment},set href(t){k.call(this),b.call(this,t)},get protocol(){return this._scheme+':'},set protocol(t){this._isInvalid||b.call(this,t+':','scheme start')},get host(){return this._isInvalid?'':this._port?this._host+':'+this._port:this._host},set host(t){!this._isInvalid&&this._isRelative&&b.call(this,t,'host')},get hostname(){return this._host},set hostname(t){!this._isInvalid&&this._isRelative&&b.call(this,t,'hostname')},get port(){return this._port},set port(t){!this._isInvalid&&this._isRelative&&b.call(this,t,'port')},get pathname(){return this._isInvalid?'':this._isRelative?'/'+this._path.join('/'):this._schemeData},set pathname(t){!this._isInvalid&&this._isRelative&&(this._path=[],b.call(this,t,'relative path start'))},get search(){return this._isInvalid||!this._query||'?'==this._query?'':this._query},set search(t){!this._isInvalid&&this._isRelative&&(this._query='?','?'==t[0]&&(t=t.slice(1)),b.call(this,t,'query'))},get hash(){return this._isInvalid||!this._fragment||'#'==this._fragment?'':this._fragment},set hash(t){this._isInvalid||(this._fragment='#','#'==t[0]&&(t=t.slice(1)),b.call(this,t,'fragment'))},get origin(){var t;if(this._isInvalid||!this._scheme)return'';switch(this._scheme){case'data':case'file':case'javascript':case'mailto':return'null'}return(t=this.host)?this._scheme+'://'+t:''}};var p=t.URL;p&&(I.createObjectURL=function(t){return p.createObjectURL.apply(p,arguments)},I.revokeObjectURL=function(t){p.revokeObjectURL(t)}),t.URL=I}function u(t){return void 0!==n[t]}function f(){k.call(this),this._isInvalid=!0}function v(t){return''==t&&f.call(this),t.toLowerCase()}function y(t){var s=t.charCodeAt(0);return s>32&&s<127&&-1==[34,35,60,62,63,96].indexOf(s)?t:encodeURIComponent(t)}function w(t){var s=t.charCodeAt(0);return s>32&&s<127&&-1==[34,35,60,62,96].indexOf(s)?t:encodeURIComponent(t)}function b(t,s,h){function p(t){L.push(t)}var b=s||'scheme start',k=0,I='',R=!1,q=!1,L=[];t:for(;(t[k-1]!=l||0==k)&&!this._isInvalid;){var U=t[k];switch(b){case'scheme start':if(!U||!_.test(U)){if(s){p('Invalid scheme.');break t}I='',b='no scheme';continue}I+=U.toLowerCase(),b='scheme';break;case'scheme':if(U&&c.test(U))I+=U.toLowerCase();else{if(':'!=U){if(s){if(l==U)break t;p('Code point not allowed in scheme: '+U);break t}I='',k=0,b='no scheme';continue}if(this._scheme=I,I='',s)break t;u(this._scheme)&&(this._isRelative=!0),b='file'==this._scheme?'relative':this._isRelative&&h&&h._scheme==this._scheme?'relative or authority':this._isRelative?'authority first slash':'scheme data'}break;case'scheme data':'?'==U?(this._query='?',b='query'):'#'==U?(this._fragment='#',b='fragment'):l!=U&&'\t'!=U&&'\n'!=U&&'\r'!=U&&(this._schemeData+=y(U));break;case'no scheme':if(h&&u(h._scheme)){b='relative';continue}p('Missing scheme.'),f.call(this);break;case'relative or authority':if('/'!=U||'/'!=t[k+1]){p('Expected /, got: '+U),b='relative';continue}b='authority ignore slashes';break;case'relative':if(this._isRelative=!0,'file'!=this._scheme&&(this._scheme=h._scheme),l==U){this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._username=h._username,this._password=h._password;break t}if('/'==U||'\\'==U)'\\'==U&&p('\\ is an invalid code point.'),b='relative slash';else if('?'==U)this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query='?',this._username=h._username,this._p
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),f=t(r(d[4])),o=(function(){function t(n){var u=this;(0,l.default)(this,t),this._keyPrefix=n;var f=this._initializeAsync();f&&(this._initializing=f,f.finally(function(){u._initializing===f&&(u._initializing=void 0)}))}return(0,u.default)(t,[{key:"clear",value:function(){for(var t=Object.keys(this),n=0;n<t.length;n++){var l=t[n];this.removeItem(l)}}},{key:"getItem",value:function(t){return this.hasOwnProperty(t)?this[t]:null}},{key:"_getItemAsync",value:function(t){var n=this;return(this._initializing||Promise.resolve()).catch(function(){}).then(function(){return n.getItem(t)})}},{key:"_initializeAsync",value:function(){var t=this;if(void 0!==this._keyPrefix)return new Promise(function(l){f.default.getAllKeys().then(function(){for(var u=arguments.length,o=new Array(u),s=0;s<u;s++)o[s]=arguments[s];var h=o[o.length-1].filter(function(n){return n.startsWith(t._keyPrefix)});f.default.multiGet(h).then(function(){var u,f=(u=arguments.length-1)<0||arguments.length<=u?void 0:arguments[u],o=t._keyPrefix&&t._keyPrefix.length,s=f,h=Array.isArray(s),y=0;for(s=h?s:s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(h){if(y>=s.length)break;v=s[y++]}else{if((y=s.next()).done)break;v=y.value}var c=v,k=(0,n.default)(c,2),_=k[0],P=k[1];_=_.substring(o),t.hasOwnProperty(_)||(t[_]=P)}l()})})})}},{key:"key",value:function(t){var n=Object.keys(this);return t<n.length?n[t]:null}},{key:"removeItem",value:function(t){delete this[t],void 0===this._keyPrefix||f.default.removeItem(""+String(this._keyPrefix)+t)}},{key:"setItem",value:function(t,n){n=String(n),this[t]=n,void 0===this._keyPrefix||f.default.setItem(""+String(this._keyPrefix)+t,n)}},{key:"length",get:function(){return Object.keys(this).length}}]),t})();e.default=o},385,[3,25,4,5,386]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"useAsyncStorage",{enumerable:!0,get:function(){return n.useAsyncStorage}}),e.default=void 0;var u=t(r(d[1])),n=r(d[2]),o=u.default;e.default=o},386,[3,387,388]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=r(d[2]).NativeModules,o=u.RNC_AsyncSQLiteDBStorage||u.RNCAsyncStorage||u.PlatformLocalStorage;if(!o)throw new Error("[@RNC/AsyncStorage]: NativeModule: AsyncStorage is null.\n\nTo fix this issue try these steps:\n\n \u2022 Run `react-native link @react-native-community/async-storage` in the project root.\n\n \u2022 Rebuild and restart the app.\n\n \u2022 Run the packager with `--clearCache` flag.\n\n \u2022 If you are using CocoaPods on iOS, run `pod install` in the `ios` directory and then rebuild and re-run the app.\n\n \u2022 If this happens while testing with Jest, check out docs how to integrate AsyncStorage with it: https://github.com/react-native-community/react-native-async-storage/blob/master/docs/Jest-integration.md\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-async-storage/issues \n");var s={_getRequests:[],_getKeys:[],_immediate:null,getItem:function(t,n){return new Promise(function(u,s){o.multiGet([t],function(t,o){var c=o&&o[0]&&o[0][1]?o[0][1]:null,f=l(t);n&&n(f&&f[0],c),f?s(f[0]):u(c)})})},setItem:function(t,n,u){return new Promise(function(s,c){o.multiSet([[t,n]],function(t){var n=l(t);u&&u(n&&n[0]),n?c(n[0]):s(null)})})},removeItem:function(t,n){return new Promise(function(u,s){o.multiRemove([t],function(t){var o=l(t);n&&n(o&&o[0]),o?s(o[0]):u(null)})})},mergeItem:function(t,n,u){return new Promise(function(s,c){o.multiMerge([[t,n]],function(t){var n=l(t);u&&u(n&&n[0]),n?c(n[0]):s(null)})})},clear:function(t){return new Promise(function(n,u){o.clear(function(o){var s=c(o);t&&t(s),s?u(s):n(null)})})},getAllKeys:function(t){return new Promise(function(n,u){o.getAllKeys(function(o,s){var l=c(o);t&&t(l,s),l?u(l):n(s)})})},flushGetRequests:function(){var t=this._getRequests,u=this._getKeys;this._getRequests=[],this._getKeys=[],o.multiGet(u,function(u,o){var s={};o&&o.forEach(function(t){var u=(0,n.default)(t,2),o=u[0],l=u[1];return s[o]=l,l});for(var l=t.length,c=0;c<l;c++){var f=t[c],h=f.keys.map(function(t){return[t,s[t]]});f.callback&&f.callback(null,h),f.resolve&&f.resolve(h)}})},multiGet:function(t,n){var u=this;this._immediate||(this._immediate=setImmediate(function(){u._immediate=null,u.flushGetRequests()}));var o={keys:t,callback:n,keyIndex:this._getKeys.length,resolve:null,reject:null},s=new Promise(function(t,n){o.resolve=t,o.reject=n});return this._getRequests.push(o),t.forEach(function(t){-1===u._getKeys.indexOf(t)&&u._getKeys.push(t)}),s},multiSet:function(t,n){return new Promise(function(u,s){o.multiSet(t,function(t){var o=l(t);n&&n(o),o?s(o):u(null)})})},multiRemove:function(t,n){return new Promise(function(u,s){o.multiRemove(t,function(t){var o=l(t);n&&n(o),o?s(o):u(null)})})},multiMerge:function(t,n){return new Promise(function(u,s){o.multiMerge(t,function(t){var o=l(t);n&&n(o),o?s(o):u(null)})})}};function l(t){return t?(Array.isArray(t)?t:[t]).map(function(t){return c(t)}):null}function c(t){if(!t)return null;var n=new Error(t.message);return n.key=t.key,n}o.multiMerge||(delete s.mergeItem,delete s.multiMerge);var f=s;e.default=f},387,[3,25,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.useAsyncStorage=function(t){return{getItem:function(){for(var u=arguments.length,f=new Array(u),o=0;o<u;o++)f[o]=arguments[o];return n.default.getItem.apply(n.default,[t].concat(f))},setItem:function(){for(var u=arguments.length,f=new Array(u),o=0;o<u;o++)f[o]=arguments[o];return n.default.setItem.apply(n.default,[t].concat(f))},mergeItem:function(){for(var u=arguments.length,f=new Array(u),o=0;o<u;o++)f[o]=arguments[o];return n.default.mergeItem.apply(n.default,[t].concat(f))},removeItem:function(){for(var u=arguments.length,f=new Array(u),o=0;o<u;o++)f[o]=arguments[o];return n.default.removeItem.apply(n.default,[t].concat(f))}}};var n=t(r(d[1]))},388,[3,387]);
__d(function(g,r,i,a,m,e,d){function t(t){this.options=t||{locator:{}}}function n(t,n,c){if(!t){if(n instanceof o)return n;t=n}var s={},u=t instanceof Function;function h(n){var o=t[n];!o&&u&&(o=2==t.length?function(o){t(n,o)}:t),s[n]=o&&function(t){o('[xmldom '+n+']\t'+t+l(c))}||function(){}}return c=c||{},h('warning'),h('error'),h('fatalError'),s}function o(){this.cdata=!1}function c(t,n){n.lineNumber=t.lineNumber,n.columnNumber=t.columnNumber}function l(t){if(t)return'\n@'+(t.systemId||'')+'#[line:'+t.lineNumber+',col:'+t.columnNumber+']'}function s(t,n,o){return'string'==typeof t?t.substr(n,o):t.length>=n+o||n?new java.lang.String(t,n,o)+'':t}function u(t,n){t.currentElement?t.currentElement.appendChild(n):t.doc.appendChild(n)}t.prototype.parseFromString=function(t,c){var l=this.options,s=new h,u=l.domBuilder||new o,f=l.errorHandler,p=l.locator,D=l.xmlns||{},E={lt:'<',gt:'>',amp:'&',quot:'"',apos:"'"};return p&&u.setDocumentLocator(p),s.errorHandler=n(f,u,p),s.domBuilder=l.domBuilder||u,/\/x?html?$/.test(c)&&(E.nbsp='\xa0',E.copy='\xa9',D['']='http://www.w3.org/1999/xhtml'),D.xml=D.xml||'http://www.w3.org/XML/1998/namespace',t?s.parse(t,D,E):s.errorHandler.error("invalid doc source"),u.doc},o.prototype={startDocument:function(){this.doc=(new f).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,n,o,l){var s=this.doc,h=s.createElementNS(t,o||n),f=l.length;u(this,h),this.currentElement=h,this.locator&&c(this.locator,h);for(var p=0;p<f;p++){t=l.getURI(p);var D=l.getValue(p),E=(o=l.getQName(p),s.createAttributeNS(t,o));this.locator&&c(l.getLocator(p),E),E.value=E.nodeValue=D,h.setAttributeNode(E)}},endElement:function(t,n,o){var c=this.currentElement;c.tagName;this.currentElement=c.parentNode},startPrefixMapping:function(t,n){},endPrefixMapping:function(t){},processingInstruction:function(t,n){var o=this.doc.createProcessingInstruction(t,n);this.locator&&c(this.locator,o),u(this,o)},ignorableWhitespace:function(t,n,o){},characters:function(t,n,o){if(t=s.apply(this,arguments)){if(this.cdata)var l=this.doc.createCDATASection(t);else l=this.doc.createTextNode(t);this.currentElement?this.currentElement.appendChild(l):/^\s*$/.test(t)&&this.doc.appendChild(l),this.locator&&c(this.locator,l)}},skippedEntity:function(t){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(t){(this.locator=t)&&(t.lineNumber=0)},comment:function(t,n,o){t=s.apply(this,arguments);var l=this.doc.createComment(t);this.locator&&c(this.locator,l),u(this,l)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(t,n,o){var l=this.doc.implementation;if(l&&l.createDocumentType){var s=l.createDocumentType(t,n,o);this.locator&&c(this.locator,s),u(this,s)}},warning:function(t){console.warn('[xmldom warning]\t'+t,l(this.locator))},error:function(t){console.error('[xmldom error]\t'+t,l(this.locator))},fatalError:function(t){throw console.error('[xmldom fatalError]\t'+t,l(this.locator)),t}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(t){o.prototype[t]=function(){return null}});var h=r(d[0]).XMLReader,f=e.DOMImplementation=r(d[1]).DOMImplementation;e.XMLSerializer=r(d[1]).XMLSerializer,e.DOMParser=t},389,[390,391]);
__d(function(g,r,i,a,m,e,d){var t=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,n=new RegExp("[\\-\\.0-9"+t.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),s=new RegExp('^'+t.source+n.source+'*(?::'+t.source+n.source+'*)?$'),c=0,u=1,o=2,l=3,f=4,h=5,p=6,w=7;function b(){}function x(t,n,s,c,u){function o(t){if(t>65535){var n=55296+((t-=65536)>>10),s=56320+(1023&t);return String.fromCharCode(n,s)}return String.fromCharCode(t)}function l(t){var n=t.slice(1,-1);return n in s?s[n]:'#'===n.charAt(0)?o(parseInt(n.substr(1).replace('x','0x'))):(u.error('entity not found:'+t),t)}function f(n){if(n>O){var s=t.substring(O,n).replace(/&#?\w+;/g,l);x&&h(O),c.characters(s,0,n-O),O=n}}function h(n,s){for(;n>=w&&(s=b.exec(t));)p=s.index,w=p+s[0].length,x.lineNumber++;x.columnNumber=n-p+1}for(var p=0,w=0,b=/.*(?:\r\n?|\n)|.*$/g,x=c.locator,E=[{currentNSMap:n}],M={},O=0;;){try{var T=t.indexOf('<',O);if(T<0){if(!t.substr(O).match(/^\s*$/)){var S=c.doc,q=S.createTextNode(t.substr(O));S.appendChild(q),c.currentElement=q}return}switch(T>O&&f(T),t.charAt(T+1)){case'/':var y=t.indexOf('>',T+3),_=t.substring(T+2,y),I=E.pop();y<0?(_=t.substring(T+2).replace(/[\s<].*/,''),u.error("end tag name: "+_+' is not complete:'+I.tagName),y=T+1+_.length):_.match(/\s</)&&(_=_.replace(/[\s<].*/,''),u.error("end tag name: "+_+' maybe not complete'),y=T+1+_.length);var L=I.localNSMap,R=I.tagName==_;if(R||I.tagName&&I.tagName.toLowerCase()==_.toLowerCase()){if(c.endElement(I.uri,I.localName,_),L)for(var P in L)c.endPrefixMapping(P);R||u.fatalError("end tag name: "+_+' is not match the current start tagName:'+I.tagName)}else E.push(I);y++;break;case'?':x&&h(T),y=$(t,T,c);break;case'!':x&&h(T),y=C(t,T,c,u);break;default:x&&h(T);var B=new A,U=E[E.length-1].currentNSMap,X=(y=N(t,T,B,U,l,u),B.length);if(!B.closed&&k(t,y,B.tagName,M)&&(B.closed=!0,s.nbsp||u.warning('unclosed xml attribute')),x&&X){for(var z=v(x,{}),H=0;H<X;H++){var Q=B[H];h(Q.offset),Q.locator=v(x,{})}c.locator=z,F(B,c,U)&&E.push(B),c.locator=x}else F(B,c,U)&&E.push(B);'http://www.w3.org/1999/xhtml'!==B.uri||B.closed?y++:y=D(t,y,B.tagName,l,c)}}catch(t){u.error('element parse error: '+t),y=-1}y>O?O=y:f(Math.max(T,O)+1)}}function v(t,n){return n.lineNumber=t.lineNumber,n.columnNumber=t.columnNumber,n}function N(t,n,s,b,x,v){for(var N,F=++n,D=c;;){var k=t.charAt(F);switch(k){case'=':if(D===u)N=t.slice(n,F),D=l;else{if(D!==o)throw new Error('attribute equal must after attrName');D=l}break;case'\'':case'"':if(D===l||D===u){if(D===u&&(v.warning('attribute value must after "="'),N=t.slice(n,F)),n=F+1,!((F=t.indexOf(k,n))>0))throw new Error('attribute value no end \''+k+'\' match');E=t.slice(n,F).replace(/&#?\w+;/g,x),s.add(N,E,n-1),D=h}else{if(D!=f)throw new Error('attribute value must after "="');E=t.slice(n,F).replace(/&#?\w+;/g,x),s.add(N,E,n),v.warning('attribute "'+N+'" missed start quot('+k+')!!'),n=F+1,D=h}break;case'/':switch(D){case c:s.setTagName(t.slice(n,F));case h:case p:case w:D=w,s.closed=!0;case f:case u:case o:break;default:throw new Error("attribute invalid close char('/')")}break;case'':return v.error('unexpected end of input'),D==c&&s.setTagName(t.slice(n,F)),F;case'>':switch(D){case c:s.setTagName(t.slice(n,F));case h:case p:case w:break;case f:case u:'/'===(E=t.slice(n,F)).slice(-1)&&(s.closed=!0,E=E.slice(0,-1));case o:D===o&&(E=N),D==f?(v.warning('attribute "'+E+'" missed quot(")!!'),s.add(N,E.replace(/&#?\w+;/g,x),n)):('http://www.w3.org/1999/xhtml'===b['']&&E.match(/^(?:disabled|checked|selected)$/i)||v.warning('attribute "'+E+'" missed value!! "'+E+'" instead!!'),s.add(E,E,n));break;case l:throw new Error('attribute value missed!!')}return F;case"\x80":k=' ';default:if(k<=' ')switch(D){case c:s.setTagName(t.slice(n,F)),D=p;break;case u:N=t.slice(n,F),D=o;break;case f:var E=t.slice(n,F).replace(/&#?\w+;/g,x);v.warning('attribute "'+E+'" missed quot(")!!'),s.add(N,E,n);case h:D=p}else switch(D){case o:s.tagName;'http://www.w3.org/1999/xhtml'===b['']&&N.match(/^(?:disable
__d(function(g,r,i,a,m,e,d){function t(t,n){for(var o in t)n[o]=t[o]}function n(n,o){var u=n.prototype;if(Object.create){var s=Object.create(o.prototype);u.__proto__=s}if(!(u instanceof o)){function l(){}l.prototype=o.prototype,t(u,l=new l),n.prototype=u=l}u.constructor!=n&&('function'!=typeof n&&console.error("unknow Class:"+n),u.constructor=n)}var o='http://www.w3.org/1999/xhtml',u={},s=u.ELEMENT_NODE=1,l=u.ATTRIBUTE_NODE=2,c=u.TEXT_NODE=3,h=u.CDATA_SECTION_NODE=4,p=u.ENTITY_REFERENCE_NODE=5,f=u.ENTITY_NODE=6,N=u.PROCESSING_INSTRUCTION_NODE=7,v=u.COMMENT_NODE=8,w=u.DOCUMENT_NODE=9,E=u.DOCUMENT_TYPE_NODE=10,y=u.DOCUMENT_FRAGMENT_NODE=11,b=u.NOTATION_NODE=12,T={},_={},D=(T.INDEX_SIZE_ERR=(_[1]="Index size error",1),T.DOMSTRING_SIZE_ERR=(_[2]="DOMString size error",2),T.HIERARCHY_REQUEST_ERR=(_[3]="Hierarchy request error",3)),S=(T.WRONG_DOCUMENT_ERR=(_[4]="Wrong document",4),T.INVALID_CHARACTER_ERR=(_[5]="Invalid character",5),T.NO_DATA_ALLOWED_ERR=(_[6]="No data allowed",6),T.NO_MODIFICATION_ALLOWED_ERR=(_[7]="No modification allowed",7),T.NOT_FOUND_ERR=(_[8]="Not found",8)),C=(T.NOT_SUPPORTED_ERR=(_[9]="Not supported",9),T.INUSE_ATTRIBUTE_ERR=(_[10]="Attribute in use",10));T.INVALID_STATE_ERR=(_[11]="Invalid state",11),T.SYNTAX_ERR=(_[12]="Syntax error",12),T.INVALID_MODIFICATION_ERR=(_[13]="Invalid modification",13),T.NAMESPACE_ERR=(_[14]="Invalid namespace",14),T.INVALID_ACCESS_ERR=(_[15]="Invalid access",15);function I(t,n){if(n instanceof Error)var o=n;else o=this,Error.call(this,_[t]),this.message=_[t],Error.captureStackTrace&&Error.captureStackTrace(this,I);return o.code=t,n&&(this.message=this.message+": "+n),o}function A(){}function R(t,n){this._node=t,this._refresh=n,x(this)}function x(n){var o=n._node._inc||n._node.ownerDocument._inc;if(n._inc!=o){var u=n._refresh(n._node);he(n,'length',u.length),t(u,n),n._inc=o}}function O(){}function U(t,n){for(var o=t.length;o--;)if(t[o]===n)return o}function M(t,n,o,u){if(u?n[U(n,u)]=o:n[n.length++]=o,t){o.ownerElement=t;var s=t.ownerDocument;s&&(u&&Y(s,t,u),F(s,t,o))}}function B(t,n,o){var u=U(n,o);if(!(u>=0))throw I(S,new Error(t.tagName+'@'+o));for(var s=n.length-1;u<s;)n[u]=n[++u];if(n.length=s,t){var l=t.ownerDocument;l&&(Y(l,t,o),o.ownerElement=null)}}function P(t){if(this._features={},t)for(var n in t)this._features=t[n]}function L(){}function V(t){return('<'==t?'<':'>'==t&&'>')||'&'==t&&'&'||'"'==t&&'"'||'&#'+t.charCodeAt()+';'}function k(t,n){if(n(t))return!0;if(t=t.firstChild)do{if(k(t,n))return!0}while(t=t.nextSibling)}function j(){}function F(t,n,o){t&&t._inc++,'http://www.w3.org/2000/xmlns/'==o.namespaceURI&&(n._nsMap[o.prefix?o.localName:'']=o.value)}function Y(t,n,o,u){t&&t._inc++,'http://www.w3.org/2000/xmlns/'==o.namespaceURI&&delete n._nsMap[o.prefix?o.localName:'']}function z(t,n,o){if(t&&t._inc){t._inc++;var u=n.childNodes;if(o)u[u.length++]=o;else{for(var s=n.firstChild,l=0;s;)u[l++]=s,s=s.nextSibling;u.length=l}}}function $(t,n){var o=n.previousSibling,u=n.nextSibling;return o?o.nextSibling=u:t.firstChild=u,u?u.previousSibling=o:t.lastChild=o,z(t.ownerDocument,t),n}function X(t,n,o){var u=n.parentNode;if(u&&u.removeChild(n),n.nodeType===y){var s=n.firstChild;if(null==s)return n;var l=n.lastChild}else s=l=n;var c=o?o.previousSibling:t.lastChild;s.previousSibling=c,l.nextSibling=o,c?c.nextSibling=s:t.firstChild=s,null==o?t.lastChild=l:o.previousSibling=l;do{s.parentNode=t}while(s!==l&&(s=s.nextSibling));return z(t.ownerDocument||t,t),n.nodeType==y&&(n.firstChild=n.lastChild=null),n}function G(t,n){var o=n.parentNode;if(o){var u=t.lastChild;o.removeChild(n);u=t.lastChild}u=t.lastChild;return n.parentNode=t,n.previousSibling=u,n.nextSibling=null,u?u.nextSibling=n:t.firstChild=n,t.lastChild=n,z(t.ownerDocument,t,n),n}function H(){this._nsMap={}}function W(){}function q(){}function Z(){}function Q(){}function J(){}function K(){}function ee(){}function te(){}function ne(){}function re(){}function ie(){}function oe(){}function ae(t,n){var o=[],u=9==this.nodeType?this.documentElement:this,s=u.prefix,l=u.namespaceURI;if(l&&null==s&&null==(s=u.l
__d(function(g,r,i,a,m,e,d){var o=r(d[0]),l=r(d[1]),t={},n=[],s=o.levels.TRACE;m.exports={addGlobalTransport:function(l){o.addGlobalTransport(l)},removeGlobalTransport:function(l){o.removeGlobalTransport(l)},setGlobalOptions:function(l){o.setGlobalOptions(l)},getLogger:function(l,v,f){var u=new o(s,l,v,f);return l?(t[l]=t[l]||[],t[l].push(u)):n.push(u),u},setLogLevelById:function(o,l){for(var s=l?t[l]||[]:n,v=0;v<s.length;v++)s[v].setLevel(o)},setLogLevel:function(o){s=o;for(var l=0;l<n.length;l++)n[l].setLevel(o);for(var v in t){var f=t[v]||[];for(l=0;l<f.length;l++)f[l].setLevel(o)}},levels:o.levels,LogCollector:l}},392,[393,394]);
__d(function(g,r,i,a,m,e,d){var t={trace:0,debug:1,info:2,log:3,warn:4,error:5};c.consoleTransport=console;var n=[c.consoleTransport];c.addGlobalTransport=function(t){-1===n.indexOf(t)&&n.push(t)},c.removeGlobalTransport=function(t){var o=n.indexOf(t);-1!==o&&n.splice(o,1)};var o={};function l(){var t={methodName:"",fileLocation:"",line:null,column:null},n=new Error,o=n.stack?n.stack.split("\n"):[];if(!o||o.length<1)return t;var l=null;return o[3]&&(l=o[3].match(/\s*at\s*(.+?)\s*\((\S*)\s*:(\d*)\s*:(\d*)\)/)),!l||l.length<=4?(0===o[2].indexOf("log@")?t.methodName=o[3].substr(0,o[3].indexOf("@")):t.methodName=o[2].substr(0,o[2].indexOf("@")),t):(t.methodName=l[1],t.fileLocation=l[2],t.line=l[3],t.column=l[4],t)}function s(){var s=arguments[0],c=arguments[1],f=Array.prototype.slice.call(arguments,2);if(!(t[c]<s.level))for(var h=!(s.options.disableCallerInfo||o.disableCallerInfo)&&l(),p=n.concat(s.transports),u=0;u<p.length;u++){var v=p[u],b=v[c];if(b&&"function"==typeof b){var O=[];O.push((new Date).toISOString()),s.id&&O.push("["+s.id+"]"),h&&h.methodName.length>1&&O.push("<"+h.methodName+">: ");var N=O.concat(f);b.bind(v).apply(v,N)}}}function c(n,o,l,c){this.id=o,this.options=c||{},this.transports=l,this.transports||(this.transports=[]),this.level=t[n];for(var f=Object.keys(t),h=0;h<f.length;h++)this[f[h]]=s.bind(null,this,f[h])}c.setGlobalOptions=function(t){o=t||{}},c.prototype.setLevel=function(n){this.level=t[n]},m.exports=c,c.levels={TRACE:"trace",DEBUG:"debug",INFO:"info",LOG:"log",WARN:"warn",ERROR:"error"}},393,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);function s(s,o){this.logStorage=s,this.stringifyObjects=!(!o||!o.stringifyObjects)&&o.stringifyObjects,this.storeInterval=o&&o.storeInterval?o.storeInterval:3e4,this.maxEntryLength=o&&o.maxEntryLength?o.maxEntryLength:1e4,Object.keys(t.levels).forEach(function(s){this[t.levels[s]]=function(){this._log.apply(this,arguments)}.bind(this,s)}.bind(this)),this.storeLogsIntervalID=null,this.queue=[],this.totalLen=0,this.outputCache=[]}s.prototype.stringify=function(t){try{return JSON.stringify(t)}catch(t){return'[object with circular refs?]'}},s.prototype.formatLogMessage=function(s){for(var o='',h=1,n=arguments.length;h<n;h++){var u=arguments[h];!this.stringifyObjects&&s!==t.levels.ERROR||'object'!=typeof u||(u=this.stringify(u)),o+=u,h!==n-1&&(o+=' ')}return o.length?o:null},s.prototype._log=function(){var t=arguments[1],s=this.formatLogMessage.apply(this,arguments);if(s){var o=this.queue[this.queue.length-1];(o&&o.text)===s?o.count+=1:(this.queue.push({text:s,timestamp:t,count:1}),this.totalLen+=s.length)}this.totalLen>=this.maxEntryLength&&this._flush(!0,!0)},s.prototype.start=function(){this._reschedulePublishInterval()},s.prototype._reschedulePublishInterval=function(){this.storeLogsIntervalID&&(window.clearTimeout(this.storeLogsIntervalID),this.storeLogsIntervalID=null),this.storeLogsIntervalID=window.setTimeout(this._flush.bind(this,!1,!0),this.storeInterval)},s.prototype.flush=function(){this._flush(!1,!0)},s.prototype._flush=function(t,s){this.totalLen>0&&(this.logStorage.isReady()||t)&&(this.logStorage.isReady()?(this.outputCache.length&&(this.outputCache.forEach(function(t){this.logStorage.storeLogs(t)}.bind(this)),this.outputCache=[]),this.logStorage.storeLogs(this.queue)):this.outputCache.push(this.queue),this.queue=[],this.totalLen=0),s&&this._reschedulePublishInterval()},s.prototype.stop=function(){this._flush(!1,!1)},m.exports=s},394,[393]);
Merge 4.13.0 into master (#2728)
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
* [FIX] Share extension and save image not working on Android 10 (#2651)
* Bump version to 4.13.0 (#2657)
* [FIX] Update Loading logo (#2658)
* [NEW] Support client certificates for SSL (two-way authentication) (Android) (#2624)
* wip: Android SSL Pinning
* Use own SSLPinningModule
* wip: Use Rocket.Chat own react-native
* wip: Fresco Images using custom OkHttpClient
* wip: react-native-webview onReceivedClientCertRequest
* feat: Save Images of a SSL Pinning protected server
* chore: SSLPinning package as a interface to iOS & Android implementations
* chore: update glide
* feat: load images under a client ssl certificate protected server
* chore: remove patch
* feat: Audio & Video under a SSL Client protected server
* fix: Unpin certificate when change server
* feat: Fast Image as a patch
* chore: update fast-image
* Fix merge
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel actions (#2644)
* room roles
* handle owner
* endpoints
* Leader and Moderator
* Remove user from room
* stash ignore
* Add subscription.ignored column
* ignore user
* Fix icons
* I18n
* Minor i18n fixes
* Direct Message and open action sheet after a normal tap
* Fix icon
* stash isIgnored
* isManualUnignored message
* Fix update
* Ignored
* Mute, moderator, leader, owner, remove from room
* ignore
* Tests
* pt-BR
* Update pods
* Apply requested changes
* Add RC version on requests
* [NEW] Support RTL (#2656)
* wip: RTL (iOS)
* wip: RTL (Android)
* wip: reload bundle when change between RTL languages
* fix: Stack Animation on Android
* fix: update snapshot
* fix: Swipe Room Actions in RTL mode
* fix: snapshots
* Move isRTL to i18n
* Fix styling
* Update tests
* Update pods
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Initial users' status is not fetched (#2664)
* [FIX] Messages overlapping and emoji keyboard not opening (#2670)
* Replace keyboard libs for react-native-ui-lib
* Apply Jitsi branch
* Require keyboard on bundle
* Update ui-lib
* chore: update deps
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] Force normalized params for 2FA (#2683)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Thread message flickering while thread parent isn't found (#2676)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Light theme not working on Android with Dark Theme set (#2675)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App not prompting join code for password protected channels (#2514)
* Adding joinCode parameter
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Insert join code input
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add joinCode field on db
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add label i18 pt-br and en-us
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add insert join code text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Fix atribute name
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add join text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Fix attributes joinCode, joinCodeRequired and pass attribute param in navigation
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Fixing attribute joinCodeRequired pass to goRoom
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Changed textinput style
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Delete not necessary attribute
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Fixing input style
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Undo unncessary changes
* use a join code modal
* tests: e2e tests to join protected channel
* fix: undo unnecessary change
* tests: cancel join code
* Remove some tests
* Minor fixes
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: youssef-md <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Add Arabic (#2537)
* Arabic language setup
* Added arabic translation
* Arabic translation Proofreading
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18N] Add missing zh_TW and zh_CN strings (#2680)
* feat(i18n): add some missing strings and improve some translation
* fix: add missing server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add username on status messages (#2553)
* 1689 - missing user name for status messages
* 1689 - missing user name for status messages. Fixed broken e2e test "should pin message".
* Minor tweak
* Remove center style
* Small refactor on User
* Remove toLowerCase
* Update tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Filenames are incorrect in non-latin alphabets on upload (#2671)
* fix: filename on react-native-image-crop-picker
* fix: use rn-fetch-blob to upload files
* fix: FileUpload as a service
* fix: cancel upload on iOS
* fix: file upload from share extension
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Ease white labelling for Android (#2685)
* improve white labelling for Android
* Move application ID to gradle properties
* Fix CI
* Point foss sufix to main app
* Use npx on android-whitelabel script
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Chats order (#2688)
* Persist highest value on subscription.roomUpdatedAt
* Update tests
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Re-enable Jitsi Chat (#2687)
* Fix main jitsi
* Fix iOS
* Clear build.gradle cache
* Don't restore gradle
* cache is back
* Use master
* Point to react-native-jitsi-meet#master
* [CHORE] Build official apps on CI (#2701)
* Duplicated target and changed Bridging Header
* Display name
* Unnecessary dumb swift file removed
* Buildable name
* Reorder Info.plist
* Rename Official target's bundle id
* Ignore .mobileprovision
* Fix provisioning of official app
* Starting signing
* stash fastfile
* starting official ci iOS
* Uncomment Fastfile keychain
* Fix CI config
* allowProvisioningUpdates
* Changing AppIcon and Splash Screen
* Remove unnecessary folder inside of Images.xcassets
* Reorder notificationservice and shareextension plists
* Fix signing
* Manual signing style for official
* Split official signing
* Update project provisioning
* Use ENV as profile
* Output match
* Keys
* TestFlight refactor
* Setting up android
* android-official-play-build job
* Start removing unnecessary fastlane tasks on Android
* Trying to refactor Android jobs
* android-env
* Remove foss build for now
* Fork
* Fix if conditions
* Fix push
* ios-build command
* Rename Android builds
* Upload dSYMs
* Refactoring workflow
* Reorder upload-to-testflight
* upload-to-google-play-beta command
* Fix ci
* Fix android fork build
* Fix keystore
* Fix options on fastlane android
* Fix keystore
* Check isOfficial on iOS
* Check isOfficial on db
* Remove unused imports
* Database names on Android
* Tag fix
* Minor fixes
* Set IS_OFFICIAL on CI
* Fix detox
* follow review suggestions
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [i18n] Update fr (#2697)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Update fr (#2705)
Typo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Empty space on Messagebox (#2704)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Yarn android scripts (#2716)
* [CHORE] Rename Experimental iOS lane (#2717)
* Move build_fork to the end
* Rename release to build_experimental
* [IMPROVEMENT] Use class variable instead of state for List's animated (#2718)
* [FIX] Bottom sheet being hidden sometimes (#2722)
* [IMPROVEMENT] Match background and text mention colors (#2723)
* [FIX] App freezing if Markdown preview contains sequential empty spaces (#2726)
* Remove sequential empty spaces from Markdown preview
* Use Markdown preview on RepliedThread
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Abdullah Alhamoud <10301923+abalhamoud@users.noreply.github.com>
Co-authored-by: Dave Koo <dkoo761@gmail.com>
Co-authored-by: Fazil Boudjelal <fazildiablou@hotmail.fr>
Co-authored-by: Lucas Dousse <Cormoran96@users.noreply.github.com>
2020-12-21 15:55:40 +00:00
__d(function(e,t,i,r,s,a,n){s.exports={_args:[["github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2","/Users/diegomello/Development/Work/jitsi-meet"]],_from:"github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",_id:"react-native@github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",_inBundle:!1,_integrity:"",_location:"/react-native",_phantomChildren:{"@hapi/joi":"15.1.1","@react-native-community/cli-debugger-ui":"3.0.0","@react-native-community/cli-tools":"3.0.0","@react-native-community/cli-types":"3.0.0","@types/color-name":"1.1.1","@types/istanbul-lib-coverage":"2.0.1","@types/istanbul-reports":"1.1.1","@types/yargs-parser":"15.0.0","color-convert":"1.9.1","command-exists":"1.2.8",commander:"2.20.0",compression:"1.7.4",connect:"3.7.0","core-js":"2.5.3",cosmiconfig:"5.2.0",deepmerge:"3.3.0",didyoumean:"1.2.1",envinfo:"7.5.0",errorhandler:"1.5.1","escape-string-regexp":"1.0.5",execa:"1.0.0","fbjs-css-vars":"1.0.2","fs-extra":"7.0.1",glob:"7.1.2","graceful-fs":"4.1.11",inquirer:"3.3.0","isomorphic-fetch":"2.2.1","js-tokens":"3.0.2",lodash:"4.17.19","loose-envify":"1.3.1",metro:"0.56.4","metro-config":"0.56.4","metro-core":"0.56.4","metro-react-native-babel-transformer":"0.56.4",minimist:"1.2.5",mkdirp:"0.5.5",morgan:"1.9.1","node-notifier":"5.4.3","object-assign":"4.1.1",open:"6.4.0",ora:"3.4.0",plist:"3.0.1",promise:"7.3.1","serve-static":"1.13.2",setimmediate:"1.0.5","shell-quote":"1.6.1","sudo-prompt":"9.1.1",wcwidth:"1.0.1",ws:"1.1.5"},_requested:{type:"git",raw:"github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",rawSpec:"github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",saveSpec:"github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",fetchSpec:null,gitCommittish:"efd2aff5661d75a230e36406b698cfe0ee545be2"},_requiredBy:["/"],_resolved:"github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",_spec:"github:jitsi/react-native#efd2aff5661d75a230e36406b698cfe0ee545be2",_where:"/Users/diegomello/Development/Work/jitsi-meet",bin:{"react-native":"cli.js"},bugs:{url:"https://github.com/facebook/react-native/issues"},dependencies:{"@babel/runtime":"^7.0.0","@react-native-community/cli":"^3.0.0","@react-native-community/cli-platform-android":"^3.0.0","@react-native-community/cli-platform-ios":"^3.0.0","abort-controller":"^3.0.0",art:"^0.10.0","base64-js":"^1.1.2",connect:"^3.6.5","create-react-class":"^15.6.3","escape-string-regexp":"^1.0.5","event-target-shim":"^5.0.1",fbjs:"^1.0.0","fbjs-scripts":"^1.1.0","hermes-engine":"^0.2.1",invariant:"^2.2.4","jsc-android":"^245459.0.0","metro-babel-register":"^0.56.0","metro-react-native-babel-transformer":"^0.56.0","metro-source-map":"^0.56.0",nullthrows:"^1.1.0","pretty-format":"^24.7.0",promise:"^7.1.1","prop-types":"^15.7.2","react-devtools-core":"^3.6.3","react-refresh":"^0.4.0","regenerator-runtime":"^0.13.2",scheduler:"0.15.0","stacktrace-parser":"^0.1.3","whatwg-fetch":"^3.0.0"},description:"A framework for building native apps using React",detox:{"test-runner":"jest","runner-config":"RNTester/e2e/config.json",specs:"",configurations:{"ios.sim.release":{binaryPath:"RNTester/build/Build/Products/Release-iphonesimulator/RNTester.app/",build:"xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Release -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",type:"ios.simulator",name:"iPhone 6s"},"ios.sim.debug":{binaryPath:"RNTester/build/Build/Products/Debug-iphonesimulator/RNTester.app/",build:"xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Debug -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",type:"ios.simulator",name:"iPhone 6s"}}},devDependencies:{"@babel/core":"^7.0.0","@babel/generator":"^7.0.0","@react-native-community/eslint-plugin":"1.0.0","@reactions/component":"^2.0.2",async:"^2.4.0","babel-eslint":"10.0.1","clang-format":"^1.2.4",coveralls:"^3.0.2",detox:"12.2.0",eslint:"5.1.0","eslint-config-fb-strict":"24.3.0","eslint-con
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]),t=n(r(d[2]));!(function(n){void 0===n.MediaStream&&(n.MediaStream=o.MediaStream),void 0===n.MediaStreamTrack&&(n.MediaStreamTrack=o.MediaStreamTrack),void 0===n.RTCIceCandidate&&(n.RTCIceCandidate=o.RTCIceCandidate),void 0===n.RTCPeerConnection&&(n.RTCPeerConnection=t.default),void 0===n.RTCPeerConnection&&(n.webkitRTCPeerConnection=t.default),void 0===n.RTCSessionDescription&&(n.RTCSessionDescription=o.RTCSessionDescription);var s=n.navigator;s&&(void 0===s.mediaDevices&&(s.mediaDevices=o.mediaDevices),void 0===s.permissions&&(s.permissions=o.permissions))})(g||window||this)},396,[3,397,431]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.registerGlobals=function(){if('object'!=typeof navigator)throw new Error('navigator is not an object');navigator.mediaDevices||(navigator.mediaDevices={});navigator.mediaDevices.getUserMedia=s.default.getUserMedia.bind(s.default),navigator.mediaDevices.enumerateDevices=s.default.enumerateDevices.bind(s.default),g.RTCPeerConnection=n.default,g.RTCIceCandidate=u.default,g.RTCSessionDescription=o.default,g.MediaStream=c.default,g.MediaStreamTrack=l.default},Object.defineProperty(e,"RTCPeerConnection",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"RTCIceCandidate",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"RTCSessionDescription",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"RTCView",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"MediaStream",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"MediaStreamTrack",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"mediaDevices",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"permissions",{enumerable:!0,get:function(){return b.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),s=t(r(d[7])),b=t(r(d[8]))},397,[3,398,419,418,422,403,409,427,430]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[2])),c=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),l=t(r(d[7])),h=t(r(d[8])),p=r(d[9]),C=t(r(d[10])),v=t(r(d[11])),_=(t(r(d[12])),t(r(d[13]))),S=t(r(d[14])),I=t(r(d[15])),w=t(r(d[16])),E=t(r(d[17])),k=t(r(d[18])),y=t(r(d[19])),O=n(r(d[20])),L=t(r(d[21])),D=p.NativeModules.WebRTCModule,b=0,T=(function(n){function t(n){var o;return(0,c.default)(this,t),(o=(0,u.default)(this,(0,f.default)(t).call(this))).signalingState='stable',o.iceGatheringState='new',o.connectionState='new',o.iceConnectionState='new',o._localStreams=[],o._remoteStreams=[],o._dataChannelIds=new Set,o._peerConnectionId=b++,D.peerConnectionInit(n,o._peerConnectionId),o._registerEvents(),o}return(0,l.default)(t,n),(0,s.default)(t,[{key:"addStream",value:function(n){-1===this._localStreams.indexOf(n)&&(D.peerConnectionAddStream(n._reactTag,this._peerConnectionId),this._localStreams.push(n))}},{key:"removeStream",value:function(n){var t=this._localStreams.indexOf(n);-1!==t&&(this._localStreams.splice(t,1),D.peerConnectionRemoveStream(n._reactTag,this._peerConnectionId))}},{key:"createOffer",value:function(n){var t=this;return new Promise(function(o,c){D.peerConnectionCreateOffer(t._peerConnectionId,O.normalizeOfferAnswerOptions(n),function(n,t){n?o(new w.default(t)):c(t)})})}},{key:"createAnswer",value:function(){var n=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(o,c){D.peerConnectionCreateAnswer(n._peerConnectionId,O.normalizeOfferAnswerOptions(t),function(n,t){n?o(new w.default(t)):c(t)})})}},{key:"setConfiguration",value:function(n){D.peerConnectionSetConfiguration(n,this._peerConnectionId)}},{key:"setLocalDescription",value:function(n){var t=this;return new Promise(function(o,c){D.peerConnectionSetLocalDescription(n.toJSON?n.toJSON():n,t._peerConnectionId,function(s,u){s?(t.localDescription=n,o()):c(u)})})}},{key:"setRemoteDescription",value:function(n){var t=this;return new Promise(function(o,c){D.peerConnectionSetRemoteDescription(n.toJSON?n.toJSON():n,t._peerConnectionId,function(s,u){s?(t.remoteDescription=n,o()):c(u)})})}},{key:"addIceCandidate",value:function(n){var t=this;return new Promise(function(o,c){D.peerConnectionAddICECandidate(n.toJSON?n.toJSON():n,t._peerConnectionId,function(n){n?o():c(new Error('Failed to add ICE candidate'))})})}},{key:"getStats",value:function(n){var t=this;return new Promise(function(o,c){D.peerConnectionGetStats(n&&n.id||'',t._peerConnectionId,function(n,t){if(n)try{var s=JSON.parse(t);o(s)}catch(n){c(n)}else c(new Error(t))})})}},{key:"getLocalStreams",value:function(){return this._localStreams.slice()}},{key:"getRemoteStreams",value:function(){return this._remoteStreams.slice()}},{key:"close",value:function(){D.peerConnectionClose(this._peerConnectionId)}},{key:"_getTrack",value:function(n,t){var o=this._remoteStreams.find(function(t){return t._reactTag===n});return o&&o._tracks.find(function(n){return n.id===t})}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(n){return n.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var n=this;this._subscriptions=[L.default.addListener('peerConnectionOnRenegotiationNeeded',function(t){t.id===n._peerConnectionId&&n.dispatchEvent(new y.default('negotiationneeded'))}),L.default.addListener('peerConnectionIceConnectionChanged',function(t){t.id===n._peerConnectionId&&(n.iceConnectionState=t.iceConnectionState,n.dispatchEvent(new y.default('iceconnectionstatechange')),'closed'===t.iceConnectionState&&n._unregisterEvents())}),L.default.addListener('peerConnectionStateChanged',function(t){t.id===n._peerConnectionId&&(n.connectionState=t.connectionState,n.dispatchEvent(new y.default('connectionstatechange')),'closed'===t.connectionState&&n._unregisterEvents())}),L.default.addListener('peerConnectionSignalingStateChanged',function(t){t.id===n._peerConnectionId&&(n.signalingState=t.signalingState,n.dispatchEvent(new y.default('signalin
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n=r(d[1]),l=r(d[2]),o=t.LISTENERS,u=t.CAPTURE,f=t.BUBBLE,c=t.ATTRIBUTE,s=t.newNode,v=n.defineCustomEventTarget,h=l.createEventWrapper,E=l.STOP_IMMEDIATE_PROPAGATION_FLAG,p="undefined"!=typeof window&&void 0!==window.EventTarget,w=m.exports=function t(){if(!(this instanceof t)){if(1===arguments.length&&Array.isArray(arguments[0]))return v(t,arguments[0]);if(arguments.length>0){for(var n=Array(arguments.length),l=0;l<arguments.length;++l)n[l]=arguments[l];return v(t,n)}throw new TypeError("Cannot call a class as a function")}Object.defineProperty(this,o,{value:Object.create(null)})};w.prototype=Object.create((p?window.EventTarget:Object).prototype,{constructor:{value:w,writable:!0,configurable:!0},addEventListener:{value:function(t,n,l){if(null==n)return!1;if("function"!=typeof n&&"object"!=typeof n)throw new TypeError("\"listener\" is not an object.");var c=l?u:f,v=this[o][t];if(null==v)return this[o][t]=s(n,c),!0;for(var h=null;null!=v;){if(v.listener===n&&v.kind===c)return!1;h=v,v=v.next}return h.next=s(n,c),!0},configurable:!0,writable:!0},removeEventListener:{value:function(t,n,l){if(null==n)return!1;for(var c=l?u:f,s=null,v=this[o][t];null!=v;){if(v.listener===n&&v.kind===c)return null==s?this[o][t]=v.next:s.next=v.next,!0;s=v,v=v.next}return!1},configurable:!0,writable:!0},dispatchEvent:{value:function(t){var n=this[o][t.type];if(null==n)return!0;for(var l=h(t,this);null!=n&&("function"==typeof n.listener?n.listener.call(this,l):n.kind!==c&&"function"==typeof n.listener.handleEvent&&n.listener.handleEvent(l),!l[E]);)n=n.next;return!l.defaultPrevented},configurable:!0,writable:!0}})},399,[400,401,402]);
__d(function(g,r,i,a,m,e,d){"use strict";var n=e.createUniqueKey="undefined"!=typeof Symbol?Symbol:function(n){return"[["+n+"_"+Math.random().toFixed(8).slice(2)+"]]"};e.LISTENERS=n("listeners"),e.CAPTURE=1,e.BUBBLE=2,e.ATTRIBUTE=3,e.newNode=function(n,t){return{listener:n,kind:t,next:null}}},400,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]),t=n.LISTENERS,u=n.ATTRIBUTE,o=n.newNode;function l(n,o){for(var l=n[t][o];null!=l;){if(l.kind===u)return l.listener;l=l.next}return null}function c(n,l,c){"function"!=typeof c&&"object"!=typeof c&&(c=null);for(var f=null,s=n[t][l];null!=s;)s.kind===u?null==f?n[t][l]=s.next:f.next=s.next:f=s,s=s.next;null!=c&&(null==f?n[t][l]=o(c,u):f.next=o(c,u))}e.defineCustomEventTarget=function(n,t){function u(){n.call(this)}var o={constructor:{value:u,configurable:!0,writable:!0}};return t.forEach(function(n){o["on"+n]={get:function(){return l(this,n)},set:function(t){c(this,n,t)},configurable:!0,enumerable:!0}}),u.prototype=Object.create(n.prototype,o),u}},401,[400]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]).createUniqueKey,n=t("stop_immediate_propagation_flag"),l=t("canceled_flag"),u=t("original_event"),o=Object.freeze({stopPropagation:Object.freeze({value:function(){var t=this[u];"function"==typeof t.stopPropagation&&t.stopPropagation()},writable:!0,configurable:!0}),stopImmediatePropagation:Object.freeze({value:function(){this[n]=!0;var t=this[u];"function"==typeof t.stopImmediatePropagation&&t.stopImmediatePropagation()},writable:!0,configurable:!0}),preventDefault:Object.freeze({value:function(){!0===this.cancelable&&(this[l]=!0);var t=this[u];"function"==typeof t.preventDefault&&t.preventDefault()},writable:!0,configurable:!0}),defaultPrevented:Object.freeze({get:function(){return this[l]},enumerable:!0,configurable:!0})});e.STOP_IMMEDIATE_PROPAGATION_FLAG=n,e.createEventWrapper=function(t,b){var c="number"==typeof t.timeStamp?t.timeStamp:Date.now(),p={type:{value:t.type,enumerable:!0},target:{value:b,enumerable:!0},currentTarget:{value:b,enumerable:!0},eventPhase:{value:2,enumerable:!0},bubbles:{value:Boolean(t.bubbles),enumerable:!0},cancelable:{value:Boolean(t.cancelable),enumerable:!0},timeStamp:{value:c,enumerable:!0},isTrusted:{value:!1,enumerable:!0}};return p[n]={value:!1,writable:!0},p[l]={value:!1,writable:!0},p[u]={value:t},void 0!==t.detail&&(p.detail={value:t.detail,enumerable:!0}),Object.create(Object.create(t,o),p)}},402,[400]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),s=r(d[6]),l=t(r(d[7])),k=t(r(d[8])),v=t(r(d[9])),y=s.NativeModules.WebRTCModule,h=(function(t){function s(t){var o;if((0,n.default)(this,s),(o=(0,c.default)(this,(0,u.default)(s).call(this))).active=!0,o._tracks=[],o.id=k.default.v4(),o._reactTag=o.id,void 0===t)y.mediaStreamCreate(o.id);else if(t instanceof s){y.mediaStreamCreate(o.id);var f=t.getTracks(),l=Array.isArray(f),h=0;for(f=l?f:f["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var T;if(l){if(h>=f.length)break;T=f[h++]}else{if((h=f.next()).done)break;T=h.value}var _=T;o.addTrack(_)}}else if(Array.isArray(t)){y.mediaStreamCreate(o.id);var b=t,p=Array.isArray(b),S=0;for(b=p?b:b["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var A;if(p){if(S>=b.length)break;A=b[S++]}else{if((S=b.next()).done)break;A=S.value}var R=A;o.addTrack(R)}}else{if(!('object'==typeof t&&t.streamId&&t.streamReactTag&&t.tracks))throw new TypeError("invalid type: "+typeof t);o.id=t.streamId,o._reactTag=t.streamReactTag;var w=t.tracks,x=Array.isArray(w),C=0;for(w=x?w:w["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var I;if(x){if(C>=w.length)break;I=w[C++]}else{if((C=w.next()).done)break;I=C.value}var M=I;o._tracks.push(new v.default(M))}}return o}return(0,f.default)(s,t),(0,o.default)(s,[{key:"addTrack",value:function(t){-1===this._tracks.indexOf(t)&&(this._tracks.push(t),y.mediaStreamAddTrack(this._reactTag,t.id))}},{key:"removeTrack",value:function(t){var n=this._tracks.indexOf(t);-1!==n&&(this._tracks.splice(n,1),y.mediaStreamRemoveTrack(this._reactTag,t.id))}},{key:"getTracks",value:function(){return this._tracks.slice()}},{key:"getTrackById",value:function(t){return this._tracks.find(function(n){return n.id===t})}},{key:"getAudioTracks",value:function(){return this._tracks.filter(function(t){return'audio'===t.kind})}},{key:"getVideoTracks",value:function(){return this._tracks.filter(function(t){return'video'===t.kind})}},{key:"clone",value:function(){throw new Error('Not implemented.')}},{key:"toURL",value:function(){return this._reactTag}},{key:"release",value:function(){y.mediaStreamRelease(this._reactTag)}}]),s})((0,l.default)(['active','inactive','addtrack','removetrack']));e.default=h},403,[3,4,5,6,9,10,15,399,404,409]);
__d(function(g,r,i,a,m,e,d){var v=r(d[0]),n=r(d[1]),o=n;o.v1=v,o.v4=n,m.exports=o},404,[405,408]);
__d(function(g,r,i,a,m,e,d){var n,o,s=r(d[0]),c=r(d[1]),v=0,l=0;m.exports=function(u,t,f){var k=t&&f||0,q=t||[],w=(u=u||{}).node||n,h=void 0!==u.clockseq?u.clockseq:o;if(null==w||null==h){var _=s();null==w&&(w=n=[1|_[0],_[1],_[2],_[3],_[4],_[5]]),null==h&&(h=o=16383&(_[6]<<8|_[7]))}var p=void 0!==u.msecs?u.msecs:(new Date).getTime(),x=void 0!==u.nsecs?u.nsecs:l+1,C=p-v+(x-l)/1e4;if(C<0&&void 0===u.clockseq&&(h=h+1&16383),(C<0||p>v)&&void 0===u.nsecs&&(x=0),x>=1e4)throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');v=p,l=x,o=h;var D=(1e4*(268435455&(p+=122192928e5))+x)%4294967296;q[k++]=D>>>24&255,q[k++]=D>>>16&255,q[k++]=D>>>8&255,q[k++]=255&D;var E=p/4294967296*1e4&268435455;q[k++]=E>>>8&255,q[k++]=255&E,q[k++]=E>>>24&15|16,q[k++]=E>>>16&255,q[k++]=h>>>8|128,q[k++]=255&h;for(var M=0;M<6;++M)q[k+M]=w[M];return t||c(q)}},405,[406,407]);
__d(function(g,r,i,a,m,e,d){var n='undefined'!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||'undefined'!=typeof msCrypto&&'function'==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);m.exports=function(){return n(t),t}}else{var o=new Array(16);m.exports=function(){for(var n,t=0;t<16;t++)0==(3&t)&&(n=4294967296*Math.random()),o[t]=n>>>((3&t)<<3)&255;return o}}},406,[]);
__d(function(g,r,i,a,m,e,d){for(var n=[],t=0;t<256;++t)n[t]=(t+256).toString(16).substr(1);m.exports=function(t,o){var u=o||0,f=n;return[f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],'-',f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]],f[t[u++]]].join('')}},407,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);m.exports=function(t,f,u){var l=f&&u||0;'string'==typeof t&&(f='binary'===t?new Array(16):null,t=null);var v=(t=t||{}).random||(t.rng||n)();if(v[6]=15&v[6]|64,v[8]=63&v[8]|128,f)for(var y=0;y<16;++y)f[l+y]=v[y];return f||o(v)}},408,[406,407]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),c=r(d[6]),f=t(r(d[7])),h=(t(r(d[8])),r(d[9])),v=c.NativeModules.WebRTCModule,k=(function(t){function c(t){var o;(0,n.default)(this,c),(o=(0,l.default)(this,(0,s.default)(c).call(this)))._constraints=t.constraints||{},o._enabled=t.enabled,o.id=t.id,o.kind=t.kind,o.label=t.label,o.muted=!1,o.remote=t.remote;var u=t.readyState.toLowerCase();return o.readyState="initializing"===u||"live"===u?"live":"ended",o}return(0,u.default)(c,t),(0,o.default)(c,[{key:"stop",value:function(){v.mediaStreamTrackSetEnabled(this.id,!1),this.readyState='ended'}},{key:"_switchCamera",value:function(){if(this.remote)throw new Error('Not implemented for remote tracks');if('video'!==this.kind)throw new Error('Only implemented for video tracks');v.mediaStreamTrackSwitchCamera(this.id)}},{key:"applyConstraints",value:function(){throw new Error('Not implemented.')}},{key:"clone",value:function(){throw new Error('Not implemented.')}},{key:"getCapabilities",value:function(){throw new Error('Not implemented.')}},{key:"getConstraints",value:function(){return(0,h.deepClone)(this._constraints)}},{key:"getSettings",value:function(){throw new Error('Not implemented.')}},{key:"release",value:function(){v.mediaStreamTrackRelease(this.id)}},{key:"enabled",get:function(){return this._enabled},set:function(t){t!==this._enabled&&(v.mediaStreamTrackSetEnabled(this.id,!this._enabled),this._enabled=!this._enabled,this.muted=!this._enabled)}}]),c})((0,f.default)(['ended','mute','unmute','overconstrained']));e.default=k},409,[3,4,5,6,9,10,15,399,410,411]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},410,[3,24,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.deepClone=w,e.normalizeOfferAnswerOptions=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o={};if(!t)return o;t.mandatory&&(t=t.mandatory);for(var f=Object.entries(t),c=0;c<f.length;c++){var u=f[c],v=(0,n.default)(u,2),s=v[0],l=v[1],w=h[s.toLowerCase()];w&&(o[w]=String(Boolean(l)))}return o},e.normalizeConstraints=function(t){for(var n=w(t),o=['audio','video'],f=0;f<o.length;f++){var c=o[f],h=n[c],v=typeof h;if('undefined'!==v)if('boolean'===v)h&&(n[c]=u(c));else{if('object'!==v)throw new TypeError("constraints."+c+" is neither a boolean nor a dictionary");n[c]=l(h,c)}}return n};var n=t(r(d[1])),o={},f={facingMode:'user',frameRate:30,height:720,width:1280},c=1.7777777777777777,h={icerestart:'IceRestart',offertoreceiveaudio:'OfferToReceiveAudio',offertoreceivevideo:'OfferToReceiveVideo',voiceactivitydetection:'VoiceActivityDetection'};function u(t){switch(t){case'audio':return o;case'video':return f;default:throw new TypeError("Invalid media type: "+t)}}function v(t,n){var o=t[n],f=typeof o;if('object'===f)for(var c=['exact','ideal'],h=0;h<c.length;h++){var u=c[h];if(o[u])return o[u]}else if('string'===f)return o}function s(t,n){var o=t[n],f=typeof o;if('number'===f)return Number.parseInt(o);if('object'===f)for(var c=['exact','ideal','min','max'],h=0;h<c.length;h++){var u=c[h];if(o[u])return Number.parseInt(o[u])}}function l(t,n){switch(n){case'audio':return t;case'video':var o;return(o=t.mandatory?{deviceId:v(t.optional||{},'sourceId'),facingMode:v(t,'facingMode'),frameRate:s(t.mandatory,'minFrameRate'),height:s(t.mandatory,'minHeight'),width:s(t.mandatory,'minWidth')}:{deviceId:v(t,'deviceId'),facingMode:v(t,'facingMode'),frameRate:s(t,'frameRate'),height:s(t,'height'),width:s(t,'width')}).deviceId||delete o.deviceId,(!o.facingMode||'user'!==o.facingMode&&'environment'!==o.facingMode)&&(o.facingMode=f.facingMode),o.frameRate||(o.frameRate=f.frameRate),o.height||o.width?o.height?o.width||(o.width=Math.round(o.height*c)):o.height=Math.round(o.width/c):(o.height=f.height,o.width=f.width),o;default:throw new TypeError("Invalid media type: "+n)}}function w(t){return JSON.parse(JSON.stringify(t))}},411,[3,25]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},412,[3,24,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},413,[3,24,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),f=t(r(d[4])),u=t(r(d[5])),l=t(r(d[6])),c=r(d[7]),h=t(r(d[8])),y=t(r(d[9])),p=t(r(d[10])),v=t(r(d[11])),b=t(r(d[12])),_=c.NativeModules.WebRTCModule,C=((function(t){function n(){return(0,o.default)(this,n),(0,s.default)(this,(0,f.default)(n).apply(this,arguments))}(0,u.default)(n,t)})((0,l.default)(Error)),(function(t){function l(t,n,u){var c;return(0,o.default)(this,l),(c=(0,s.default)(this,(0,f.default)(l).call(this))).binaryType='arraybuffer',c.bufferedAmount=0,c.bufferedAmountLowThreshold=0,c.maxPacketLifeTime=null,c.maxRetransmits=null,c.negotiated=!1,c.ordered=!0,c.protocol='',c.readyState='connecting',c._peerConnectionId=t,c.label=n,c.id='id'in u?u.id:-1,c.ordered=!!u.ordered,c.maxPacketLifeTime=u.maxPacketLifeTime,c.maxRetransmits=u.maxRetransmits,c.protocol=u.protocol||'',c.negotiated=!!u.negotiated,c._registerEvents(),c}return(0,u.default)(l,t),(0,n.default)(l,[{key:"send",value:function(t){if('string'!=typeof t){if(ArrayBuffer.isView(t))t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);else{if(!(t instanceof ArrayBuffer))throw new TypeError('Data must be either string, ArrayBuffer, or ArrayBufferView');t=new Uint8Array(t)}_.dataChannelSend(this._peerConnectionId,this.id,h.default.fromByteArray(t),'binary')}else _.dataChannelSend(this._peerConnectionId,this.id,t,'text')}},{key:"close",value:function(){'closing'!==this.readyState&&'closed'!==this.readyState&&(this.readyState='closing',_.dataChannelClose(this._peerConnectionId,this.id))}},{key:"_unregisterEvents",value:function(){this._subscriptions.forEach(function(t){return t.remove()}),this._subscriptions=[]}},{key:"_registerEvents",value:function(){var t=this;this._subscriptions=[b.default.addListener('dataChannelStateChanged',function(n){n.peerConnectionId===t._peerConnectionId&&n.id===t.id&&(t.readyState=n.state,'open'===t.readyState?t.dispatchEvent(new v.default('open',{channel:t})):'close'===t.readyState&&(t.dispatchEvent(new v.default('close',{channel:t})),t._unregisterEvents()))}),b.default.addListener('dataChannelReceiveMessage',function(n){if(n.peerConnectionId===t._peerConnectionId&&n.id===t.id){var o=n.data;'binary'===n.type&&(o=h.default.toByteArray(n.data).buffer),t.dispatchEvent(new p.default('message',{data:o}))}})]}}]),l})((0,y.default)(['open','message','bufferedamountlow','close','error'])));e.default=C},414,[3,5,4,6,9,10,100,15,128,399,415,416,417]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},415,[3,24,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},416,[3,24,4]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),u=t.NativeModules.WebRTCModule,l=new t.NativeEventEmitter(u);e.default=l},417,[15]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),s=t(r(d[2])),n=(function(){function t(s){(0,u.default)(this,t),this.sdp=s.sdp,this.type=s.type}return(0,s.default)(t,[{key:"toJSON",value:function(){return{sdp:this.sdp,type:this.type}}}]),t})();e.default=n},418,[3,4,5]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=(function(){function t(s){(0,n.default)(this,t),this.candidate=s.candidate,this.sdpMLineIndex=s.sdpMLineIndex,this.sdpMid=s.sdpMid}return(0,s.default)(t,[{key:"toJSON",value:function(){return{candidate:this.candidate,sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid}}}]),t})();e.default=u},419,[3,4,5]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1]));e.default=function t(u,c){(0,n.default)(this,t),this.type=u.toString(),this.candidate=null,c&&c.candidate&&(this.candidate=c.candidate)}},420,[3,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),f=t(r(d[2]));e.default=function t(l,n){(0,f.default)(this,t),this.type=l.toString(),(0,u.default)(this,n)}},421,[3,24,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[1]),n=t(r(d[2])),l=(o.NativeModules.WebRTCModule,{name:'RTCVideoView',propTypes:{mirror:n.default.bool,objectFit:n.default.oneOf(['contain','cover']),streamURL:n.default.string,zOrder:n.default.number}}),s=(0,o.requireNativeComponent)('RTCVideoView',l,{nativeOnly:{testID:!0,accessibilityComponentType:!0,renderToHardwareTextureAndroid:!0,accessibilityLabel:!0,accessibilityLiveRegion:!0,importantForAccessibility:!0,onLayout:!0,nativeID:!0}});e.default=s},422,[3,15,423]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},423,[424]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o=r(d[1]),p=r(d[2]);m.exports=function(){function n(t,n,s,c,y,u){u!==p&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function s(){return n}n.isRequired=n;var c={array:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:s,element:n,instanceOf:s,node:n,objectOf:s,oneOf:s,oneOfType:s,shape:s,exact:s};return c.checkPropTypes=t,c.PropTypes=c,c}},424,[425,285,426]);
__d(function(g,r,i,a,m,e,d){"use strict";function t(t){return function(){return t}}var n=function(){};n.thatReturns=t,n.thatReturnsFalse=t(!1),n.thatReturnsTrue=t(!0),n.thatReturnsNull=t(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(t){return t},m.exports=n},425,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},426,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),o=r(d[6]),s=t(r(d[7])),v=t(r(d[8])),h=o.NativeModules.WebRTCModule,y=new((function(t){function o(){return(0,u.default)(this,o),(0,f.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,c.default)(o,t),(0,n.default)(o,[{key:"enumerateDevices",value:function(){return new Promise(function(t){return h.enumerateDevices(t)})}},{key:"getUserMedia",value:function(t){return(0,v.default)(t)}}]),o})((0,s.default)(['devicechange'])));e.default=y},427,[3,4,5,6,9,10,15,399,428]);
__d(function(g,r,i,a,m,e,d){'use strict';var o=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if('object'!=typeof o)return Promise.reject(new TypeError('constraints is not a dictionary'));if(!(void 0!==o.audio&&o.audio||void 0!==o.video&&o.video))return Promise.reject(new TypeError('audio and/or video is required'));var t=[];(o=u.normalizeConstraints(o)).audio?t.push(c.default.request({name:'microphone'})):t.push(Promise.resolve(!1));o.video?t.push(c.default.request({name:'camera'})):t.push(Promise.resolve(!1));return new Promise(function(s,c){Promise.all(t).then(function(t){var p=(0,n.default)(t,2),y=p[0],h=p[1];if(y||h){y||delete o.audio,h||delete o.video;v.getUserMedia(o,function(t,n){for(var f=n,c=Array.isArray(f),v=0,f=c?f:f["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var p;if(c){if(v>=f.length)break;p=f[v++]}else{if((v=f.next()).done)break;p=v.value}var y=p,h=o[y.kind];'object'==typeof h&&(y.constraints=u.deepClone(h))}var b={streamId:t,streamReactTag:t,tracks:n};s(new l.default(b))},function(o,t){var n;switch(o){case'TypeError':n=new TypeError(t)}n||(n=new f.default({message:t,name:o}));c(n)})}else{c(new f.default({message:'Permission denied.',name:'SecurityError'}))}})})};var n=t(r(d[2])),s=r(d[3]),u=o(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),c=t(r(d[7])),v=s.NativeModules.WebRTCModule},428,[2,3,25,15,411,403,429,430]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1]));e.default=function t(n){(0,s.default)(this,t),this.name=n.name,this.message=n.message,this.constraintName=n.constraintName}},429,[3,4]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=n(r(d[2])),s=r(d[3]),u=s.NativeModules.WebRTCModule,P=new((function(){function n(){(0,t.default)(this,n),this.RESULT={DENIED:'denied',GRANTED:'granted',PROMPT:'prompt'},this.VALID_PERMISSIONS=['camera','microphone'],this._lastReq=Promise.resolve()}return(0,o.default)(n,[{key:"_requestPermissionAndroid",value:function(n){return new Promise(function(t,o){s.PermissionsAndroid.request(n).then(function(n){return t(!0===n||n===s.PermissionsAndroid.RESULTS.GRANTED)},function(){return t(!1)})})}},{key:"_validatePermissionDescriptior",value:function(n){if("object"!=typeof n)throw new TypeError("Argument 1 of Permissions.query is not an object.");if(void 0===n.name)throw new TypeError("Missing required 'name' member of PermissionDescriptor.");if(-1===this.VALID_PERMISSIONS.indexOf(n.name))throw new TypeError("'name' member of PermissionDescriptor is not a valid value for enumeration PermissionName.")}},{key:"query",value:function(n){var t=this;try{this._validatePermissionDescriptior(n)}catch(n){return Promise.reject(n)}if('android'===s.Platform.OS){var o='camera'===n.name?s.PermissionsAndroid.PERMISSIONS.CAMERA:s.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;return new Promise(function(n,u){s.PermissionsAndroid.check(o).then(function(o){return n(o?t.RESULT.GRANTED:t.RESULT.PROMPT)},function(){return n(t.RESULT.PROMPT)})})}return'ios'===s.Platform.OS?u.checkPermission(n.name):Promise.reject(new TypeError("Unsupported platform."))}},{key:"request",value:function(n){var t=this;try{this._validatePermissionDescriptior(n)}catch(n){return Promise.reject(n)}if('android'===s.Platform.OS){var o='camera'===n.name?s.PermissionsAndroid.PERMISSIONS.CAMERA:s.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,P=function(){return t._requestPermissionAndroid(o)};return this._lastReq=this._lastReq.then(P,P),this._lastReq}return'ios'===s.Platform.OS?u.requestPermission(n.name):Promise.reject(new TypeError("Unsupported platform."))}}]),n})());e.default=P},430,[3,4,5,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=f;var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]),s=r(d[4]);function f(){for(var t=this,n=arguments.length,o=new Array(n),u=0;u<n;u++)o[u]=arguments[u];s.RTCPeerConnection.apply(this,o),this.onaddstream=function(){for(var n=arguments.length,o=new Array(n),u=0;u<n;u++)o[u]=arguments[u];return(t._onaddstreamQueue?t._queueOnaddstream:t._invokeOnaddstream).apply(t,o)},Object.defineProperty(this,'onaddstream',{configurable:!0,enumerable:!0,get:function(){return this._onaddstream},set:function(t){this._onaddstream=t}})}function c(t){var n=this;return new Promise(function(o,u){n._onaddstreamQueue=[],s.RTCPeerConnection.prototype.setRemoteDescription.call(n,t).then(function(){var t;try{o.apply(void 0,arguments)}finally{t=n._onaddstreamQueue,n._onaddstreamQueue=void 0}n._invokeQueuedOnaddstream(t)},function(){n._onaddstreamQueue=void 0,u.apply(void 0,arguments)})})}f.prototype=Object.create(s.RTCPeerConnection.prototype),f.prototype.constructor=f,f.prototype._invokeOnaddstream=function(){for(var t=this._onaddstream,n=arguments.length,o=new Array(n),u=0;u<n;u++)o[u]=arguments[u];return t&&t.apply(this,o)},f.prototype._invokeQueuedOnaddstream=function(t){var n=this;t&&t.forEach(function(t){try{n._invokeOnaddstream.apply(n,(0,o.default)(t))}catch(t){console.error(t)}})},f.prototype._queueOnaddstream=function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];this._onaddstreamQueue.push(Array.from(n))},f.prototype.setRemoteDescription=function(t){var n,o=this;return(n=t,new Promise(function(t){return t(v(n))}).then(function(t){var o=t.ips,u=t.lines;return Promise.all(Array.from(o.values())).then(function(){return l(n,o,u)})})).catch(function(n){return n&&console.error(n),t}).then(function(t){return c.bind(o)(t)})};var p=(function(){var t=u.NativeModules.POSIX;if(t){var o=t.getaddrinfo;if('function'==typeof o)return function(t){return o(t,void 0).then(function(t){return(0,n.default)(t,1)[0].ai_addr})}}var s=u.NativeModules.NAT64AddrInfo;if(s){var f=s.getIPv6Address;if('function'==typeof f)return f}return function(){return Promise.reject("The impossible just happened! No POSIX.getaddrinfo or NAT64AddrInfo.getIPv6Address!")}})();function v(t){var n=t.sdp,o=0,u=[],s=new Map;do{var f=n.indexOf('\r\n',o),c=void 0;if(-1===f?(c=n.substring(o),o=void 0):(c=n.substring(o,f),o=f+2),c.startsWith('a=candidate:')){var v=c.split(' ');if(v.length>=10&&'typ'===v[6]){for(var l=[v[4]],h=!1,y=8;y<v.length;++y)if('raddr'===v[y]){l.push(v[++y]);break}for(var _=function(t){if(-1!==t.indexOf(':'))return h=!0,"break";s.has(t)||s.set(t,new Promise(function(n,o){var u=s.get(t);u&&'string'==typeof u?n(u):p(t).then(function(o){o&&-1!==o.indexOf(':')&&o!==s.get(t)?s.set(t,o):s.delete(t),n(o)},o)}))},b=0;b<l.length;b++){if("break"===_(l[b]))break}if(h){s.clear();break}c=v}}u.push(c)}while(o);return{ips:s,lines:u}}function l(t,n,o){if(0===n.size)return t;for(var u=0;u<o.length;++u){var f=o[u];if('string'!=typeof f){var c=f[4],p=n.get(c);p&&(f[4]=p);for(var v=8;v<f.length;++v)if('raddr'===f[v]){c=f[++v],(p=n.get(c))&&(f[v]=p);break}o[u]=f.join(' ')}}return new s.RTCSessionDescription({sdp:o.join('\r\n'),type:t.type})}},431,[3,25,31,15,397]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);window.csioReactNative=!0,window.RTCPeerConnection||(window.RTCPeerConnection=n.RTCPeerConnection),window.webkitRTCPeerConnection||(window.webkitRTCPeerConnection=n.RTCPeerConnection),window.performance||(window.performance={}),window.performance.timing||(window.performance.timing={},window.performance.timing.navigationStart=0),Date.now=Date.now||function(){return(new Date).getTime()},window.performance.now||(window.performance.now=function(){return Date.now()}),window.location||(window.location={},window.location.href='react-native'),window.atob||(window.atob=r(d[2]).decode),window.btoa||(window.btoa=r(d[2]).encode);window.csiosign=function(n,o,w){var t=new(r(d[3]))('SHA-256','TEXT');t.setHMACKey(o,'TEXT'),t.update(n);var c,f=t.getHMAC('BYTES');return w(null,n+='.'+(c=f,window.btoa(c).replace(/\+/g,'-').replace(/\//g,'_').replace(/\=+$/,'')))},window.csioGetOsName=function(){return o.Platform.OS},window.csioGetOsVer=function(){return o.Platform.Version+''}},432,[397,15,433,434]);
__d(function(g,r,i,a,m,e,d){!(function(t){var n='object'==typeof e&&e,o='object'==typeof m&&m&&m.exports==n&&m,c='object'==typeof g&&g;c.global!==c&&c.window!==c||(t=c);var h=function(t){this.message=t};(h.prototype=new Error).name='InvalidCharacterError';var f=function(t){throw new h(t)},s='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',A=/[\t\n\f\r ]/g,l={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&f("The string to be encoded contains characters outside of the Latin1 range.");for(var n,o,c,h,A=t.length%3,l='',p=-1,u=t.length-A;++p<u;)n=t.charCodeAt(p)<<16,o=t.charCodeAt(++p)<<8,c=t.charCodeAt(++p),l+=s.charAt((h=n+o+c)>>18&63)+s.charAt(h>>12&63)+s.charAt(h>>6&63)+s.charAt(63&h);return 2==A?(n=t.charCodeAt(p)<<8,o=t.charCodeAt(++p),l+=s.charAt((h=n+o)>>10)+s.charAt(h>>4&63)+s.charAt(h<<2&63)+'='):1==A&&(h=t.charCodeAt(p),l+=s.charAt(h>>2)+s.charAt(h<<4&63)+'=='),l},decode:function(t){var n=(t=String(t).replace(A,'')).length;n%4==0&&(n=(t=t.replace(/==?$/,'')).length),(n%4==1||/[^+a-zA-Z0-9/]/.test(t))&&f('Invalid character: the string to be decoded is not correctly encoded.');for(var o,c,h=0,l='',p=-1;++p<n;)c=s.indexOf(t.charAt(p)),o=h%4?64*o+c:c,h++%4&&(l+=String.fromCharCode(255&o>>(-2*h&6)));return l},version:'0.1.0'};if('function'==typeof define&&'object'==typeof define.amd&&define.amd)define(function(){return l});else if(n&&!n.nodeType)if(o)o.exports=l;else for(var p in l)l.hasOwnProperty(p)&&(n[p]=l[p]);else t.base64=l})(this)},433,[]);
__d(function(g,r,i,a,m,e,d){'use strict';!(function(n){function t(n,t,o){var h,l,A,p,E,H,v,S,U,k=0,F=[],R=0,y=!1,B=[],L=[],T=!1,C=!1,Y=-1;if(h=(o=o||{}).encoding||"UTF8",(U=o.numRounds||1)!==parseInt(U,10)||1>U)throw Error("numRounds must a integer >= 1");if("SHA-1"===n)E=512,H=N,v=j,p=160,S=function(n){return n.slice()};else if(0===n.lastIndexOf("SHA-",0))if(H=function(t,o){return z(t,o,n)},v=function(t,o,u,f){var w,s;if("SHA-224"===n||"SHA-256"===n)w=15+(o+65>>>9<<4),s=16;else{if("SHA-384"!==n&&"SHA-512"!==n)throw Error("Unexpected error in SHA-2 implementation");w=31+(o+129>>>10<<5),s=32}for(;t.length<=w;)t.push(0);for(t[o>>>5]|=128<<24-o%32,o+=u,t[w]=4294967295&o,t[w-1]=o/4294967296|0,u=t.length,o=0;o<u;o+=s)f=z(t.slice(o,o+s),f,n);if("SHA-224"===n)t=[f[0],f[1],f[2],f[3],f[4],f[5],f[6]];else if("SHA-256"===n)t=f;else if("SHA-384"===n)t=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b];else{if("SHA-512"!==n)throw Error("Unexpected error in SHA-2 implementation");t=[f[0].a,f[0].b,f[1].a,f[1].b,f[2].a,f[2].b,f[3].a,f[3].b,f[4].a,f[4].b,f[5].a,f[5].b,f[6].a,f[6].b,f[7].a,f[7].b]}return t},S=function(n){return n.slice()},"SHA-224"===n)E=512,p=224;else if("SHA-256"===n)E=512,p=256;else if("SHA-384"===n)E=1024,p=384;else{if("SHA-512"!==n)throw Error("Chosen SHA variant is not supported");E=1024,p=512}else{if(0!==n.lastIndexOf("SHA3-",0)&&0!==n.lastIndexOf("SHAKE",0))throw Error("Chosen SHA variant is not supported");var x=6;if(H=Z,S=function(n){var t,o=[];for(t=0;5>t;t+=1)o[t]=n[t].slice();return o},Y=1,"SHA3-224"===n)E=1152,p=224;else if("SHA3-256"===n)E=1088,p=256;else if("SHA3-384"===n)E=832,p=384;else if("SHA3-512"===n)E=576,p=512;else if("SHAKE128"===n)E=1344,p=-1,x=31,C=!0;else{if("SHAKE256"!==n)throw Error("Chosen SHA variant is not supported");E=1088,p=-1,x=31,C=!0}v=function(n,t,o,u,f){var w,s=x,c=[],b=(o=E)>>>5,h=0,l=t>>>5;for(w=0;w<l&&t>=o;w+=b)u=Z(n.slice(w,w+b),u),t-=o;for(n=n.slice(w),t%=o;n.length<b;)n.push(0);for(n[(w=t>>>3)>>2]^=s<<w%4*8,n[b-1]^=2147483648,u=Z(n,u);32*c.length<f&&(n=u[h%5][h/5|0],c.push(n.b),!(32*c.length>=f));)c.push(n.a),0==64*(h+=1)%o&&Z(null,u);return c}}A=b(t,h,Y),l=K(n),this.setHMACKey=function(t,o,u){var f;if(!0===y)throw Error("HMAC key already set");if(!0===T)throw Error("Cannot set HMAC key after calling update");if(!0===C)throw Error("SHAKE is not supported for HMAC");if(t=(o=b(o,h=(u||{}).encoding||"UTF8",Y)(t)).binLen,o=o.value,u=(f=E>>>3)/4-1,f<t/8){for(o=v(o,t,0,K(n),p);o.length<=u;)o.push(0);o[u]&=4294967040}else if(f>t/8){for(;o.length<=u;)o.push(0);o[u]&=4294967040}for(t=0;t<=u;t+=1)B[t]=909522486^o[t],L[t]=1549556828^o[t];l=H(B,l),k=E,y=!0},this.update=function(n){var t,o,u,f=0,w=E>>>5;for(n=(t=A(n,F,R)).binLen,o=t.value,t=n>>>5,u=0;u<t;u+=w)f+E<=n&&(l=H(o.slice(u,u+w),l),f+=E);k+=f,F=o.slice(f>>>5),R=n%E,T=!0},this.getHash=function(t,o){var b,h,A,E;if(!0===y)throw Error("Cannot call getHash after setting HMAC key");if(A=c(o),!0===C){if(-1===A.shakeLen)throw Error("shakeLen must be specified in options");p=A.shakeLen}switch(t){case"HEX":b=function(n){return u(n,p,Y,A)};break;case"B64":b=function(n){return f(n,p,Y,A)};break;case"BYTES":b=function(n){return w(n,p,Y)};break;case"ARRAYBUFFER":try{h=new ArrayBuffer(0)}catch(n){throw Error("ARRAYBUFFER not supported by this environment")}b=function(n){return s(n,p,Y)};break;default:throw Error("format must be HEX, B64, BYTES, or ARRAYBUFFER")}for(E=v(F.slice(),R,k,S(l),p),h=1;h<U;h+=1)!0===C&&0!=p%32&&(E[E.length-1]&=16777215>>>24-p%32),E=v(E,p,0,K(n),p);return b(E)},this.getHMAC=function(t,o){var b,h,A,U;if(!1===y)throw Error("Cannot call getHMAC without first setting HMAC key");switch(A=c(o),t){case"HEX":b=function(n){return u(n,p,Y,A)};break;case"B64":b=function(n){return f(n,p,Y,A)};break;case"BYTES":b=function(n){return w(n,p,Y)};break;case"ARRAYBUFFER":try{b=new ArrayBuffer(0)}catch(n){throw Error("ARRAYBUFFER not supported by this environment")}b=function(n){return s(n,p,Y)};break;default:throw Error("outputFormat must be HEX, B64, BYTES, or ARRAYBUFFER")}return h=v(F.slice(),R,k,S(l)
__d(function(e,t,n,r,i,a,o){var s=t(o[0]);!(function(){return function e(n,r,i){function a(s,c){if(!r[s]){if(!n[s]){var u="function"==typeof t&&t;if(!c&&u)return u(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var f=r[s]={exports:{}};n[s][0].call(f.exports,function(e){return a(n[s][1][e]||e)},f,f.exports,e,n,r,i)}return r[s].exports}for(var o="function"==typeof t&&t,s=0;s<i.length;s++)a(i[s]);return a}})()({1:[function(t,n,r){(function(e,t,i){!(function(e){if("object"==typeof r&&void 0!==n)n.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i;"undefined"!=typeof window?i=window:void 0!==t?i=t:"undefined"!=typeof self&&(i=self),i.Promise=e()}})(function(){return(function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(o,!0);if(a)return a(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){return i(t[o][1][e]||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var a="function"==typeof _dereq_&&_dereq_,o=0;o<r.length;o++)i(r[o]);return i})({1:[function(e,t,n){"use strict";t.exports=function(e){function t(e){var t=new n(e),r=t.promise();return t.setHowMany(1),t.setUnwrap(),t.init(),r}var n=e._SomePromiseArray;e.any=function(e){return t(e)},e.prototype.any=function(){return t(this)}}},{}],2:[function(t,n,r){"use strict";function i(){this._customScheduler=!1,this._isTickUsed=!1,this._lateQueue=new l(16),this._normalQueue=new l(16),this._haveDrainedQueues=!1,this._trampolineEnabled=!0;var e=this;this.drainQueues=function(){e._drainQueues()},this._schedule=u}function a(e,t,n){this._lateQueue.push(e,t,n),this._queueTick()}function o(e,t,n){this._normalQueue.push(e,t,n),this._queueTick()}function s(e){this._normalQueue._pushOne(e),this._queueTick()}var c;try{throw new Error}catch(e){c=e}var u=t("./schedule"),l=t("./queue"),f=t("./util");i.prototype.setScheduler=function(e){var t=this._schedule;return this._schedule=e,this._customScheduler=!0,t},i.prototype.hasCustomScheduler=function(){return this._customScheduler},i.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},i.prototype.disableTrampolineIfNecessary=function(){f.hasDevTools&&(this._trampolineEnabled=!1)},i.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},i.prototype.fatalError=function(t,n){n?(e.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),e.exit(2)):this.throwLater(t)},i.prototype.throwLater=function(e,t){if(1===arguments.length&&(t=e,e=function(){throw t}),"undefined"!=typeof setTimeout)setTimeout(function(){e(t)},0);else try{this._schedule(function(){e(t)})}catch(e){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},f.hasDevTools?(i.prototype.invokeLater=function(e,t,n){this._trampolineEnabled?a.call(this,e,t,n):this._schedule(function(){setTimeout(function(){e.call(t,n)},100)})},i.prototype.invoke=function(e,t,n){this._trampolineEnabled?o.call(this,e,t,n):this._schedule(function(){e.call(t,n)})},i.prototype.settlePromises=function(e){this._trampolineEnabled?s.call(this,e):this._schedule(function(){e._settlePromises()})}):(i.prototype.invokeLater=a,i.prototype.invoke=o,i.prototype.settlePromises=s),i.prototype._drainQueue=function(e){for(;e.length()>0;){var t=e.shift();if("function"==typeof t){var n=e.shift(),r=e.shift();t.call(n,r)}else t._settlePromises()}},i.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},i.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},i.prototype._reset=function(){this._isTickUsed=!1},n.exports=i,n.exports.firstLineError=c},{"./queue":26,"./schedule":29,"./util":36}],3:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){var i=!1,a=function(e,t){this._reject(t)},o=function(e,t){t.promiseRejectionQueued=!0,t.bindingPromise._then(a,a,null,this,e)},s=function(
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},436,[437]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.App=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),p=t(r(d[7])),c=t(r(d[8])),v=r(d[9]),h=r(d[10]),_=r(d[11]),E=r(d[12]),D=r(d[13]),y=r(d[14]),C=r(d[15]),b=r(d[16]),A=t(r(d[17])),S=r(d[18]);r(d[19]),r(d[20]);var L=(function(t){function A(t){var o;return(0,n.default)(this,A),(o=(0,l.default)(this,(0,s.default)(A).call(this,t)))._maybeDisableExceptionsManager(),o._onDimensionsChanged=o._onDimensionsChanged.bind((0,p.default)((0,p.default)(o))),o}return(0,f.default)(A,t),(0,o.default)(A,[{key:"componentDidMount",value:function(){var t=this;(0,u.default)((0,s.default)(A.prototype),"componentDidMount",this).call(this),this._init.then(function(){var n=t.state.store,o=n.dispatch,l=n.getState;if(o((0,v.setColorScheme)(t.props.colorScheme)),o((0,_.updateFlags)(t.props.flags)),!(0,D.getFeatureFlag)(l(),E.SERVER_URL_CHANGE_ENABLED,!0)&&void 0!==t.props.url){var s=t.props.url.serverURL;void 0!==s&&o((0,b.updateSettings)({serverURL:s}))}o((0,b.updateSettings)(t.props.userInfo||{}));var u=t.props.flags[E.CALL_INTEGRATION_ENABLED];void 0!==u&&o((0,b.updateSettings)({disableCallIntegration:!u}))})}},{key:"_createMainElement",value:function(t,n){return c.default.createElement(C.DimensionsDetector,{onDimensionsChanged:this._onDimensionsChanged},(0,u.default)((0,s.default)(A.prototype),"_createMainElement",this).call(this,t,n))}},{key:"_maybeDisableExceptionsManager",value:function(){if('android'===y.Platform.OS){var t=g.ErrorUtils.getGlobalHandler(),n=M;t&&t===n||(n.next=t,g.ErrorUtils.setGlobalHandler(n))}}},{key:"_onDimensionsChanged",value:function(t,n){(0,this.state.store.dispatch)((0,C.clientResized)(t,n))}},{key:"_renderDialogContainer",value:function(){return c.default.createElement(h.DialogContainer,null)}}]),A})(S.AbstractApp);function M(t,n){if(n)A.default.error(t);else{var o=M.next;'function'==typeof o&&o(t,n)}}e.App=L},437,[3,4,5,6,9,46,10,8,59,438,531,952,954,955,539,1081,910,1086,1087,1132,1700]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var o={ColorSchemeRegistry:!0};Object.defineProperty(e,"ColorSchemeRegistry",{enumerable:!0,get:function(){return l.default}});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))});var c=r(d[2]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=r(d[3]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var l=t(r(d[4]))},438,[3,439,440,441,442]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setColorScheme=function(t){return{type:o.SET_COLOR_SCHEME,colorScheme:t}};var o=r(d[0])},439,[440]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_COLOR_SCHEME=void 0;e.SET_COLOR_SCHEME='SET_COLOR_SCHEME'},440,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.schemeColor=function(n){return function(){return n}}},441,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),f=r(d[5]),n=(r(d[6]),t(r(d[7]))),h=new((function(){function t(){(0,o.default)(this,t),this._schemedStyles=new Map,this._styleTemplates=new Map}return(0,u.default)(t,[{key:"clear",value:function(){this._schemedStyles.clear()}},{key:"get",value:function(t,l){var s=this._schemedStyles.get(l);return s||(s=this._applyColorScheme(t,l,this._styleTemplates.get(l)),this._schemedStyles.set(l,s)),s}},{key:"register",value:function(t,l){this._styleTemplates.set(t,l),this._schemedStyles.delete(t)}},{key:"_applyColorScheme",value:function(t,o,u){var f;if(Array.isArray(u)){f=[];var n=u,h=Array.isArray(n),y=0;for(n=h?n:n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var c;if(h){if(y>=n.length)break;c=n[y++]}else{if((y=n.next()).done)break;c=y.value}var _=c;f.push(this._applyColorScheme(t,o,_))}}else{f=(0,s.default)({},u);for(var v=Object.entries(f),p=0;p<v.length;p++){var S=v[p],b=(0,l.default)(S,2),k=b[0],C=b[1];if('object'==typeof C)f[k]=this._applyColorScheme(t,o,C);else if('function'==typeof C){var T=C();f[k]=this._getColor(t,o,T)}}}return f}},{key:"_getColor",value:function(t,l,o){var u=(0,f.toState)(t)['features/base/color-scheme'];return(0,s.default)({},n.default._defaultTheme,u._defaultTheme,n.default[l],u[l])[o]}}]),t})());e.default=h},442,[3,25,53,4,5,443,522,530]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={MiddlewareRegistry:!0,PersistenceRegistry:!0,ReducerRegistry:!0,StateListenerRegistry:!0};Object.defineProperty(e,"MiddlewareRegistry",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"PersistenceRegistry",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"ReducerRegistry",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"StateListenerRegistry",{enumerable:!0,get:function(){return s.default}});var u=r(d[1]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var c=t(r(d[2])),f=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5]))},443,[3,444,481,482,520,521]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.assign=function(t,n){var u=t;for(var f in n)u=c(u,f,n[f],u===t);return u},e.connect=function(t,n){return(0,o.connect)(t,n)},e.equals=function(t,n){return f.default.isEqual(t,n)},e.set=function(t,n,u){return c(t,n,u,!0)},e.toState=function(t){if(t){if('function'==typeof t)return t();var n=t.getState;if('function'==typeof n)return n()}return t};var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=r(d[4]);function c(t,f,o,c){if(void 0===o&&Object.prototype.hasOwnProperty.call(t,f)){var l=c?(0,u.default)({},t):t;if(delete l[f])return l}if(t[f]!==o){if(c)return(0,u.default)({},t,(0,n.default)({},f,o));t[f]=o}return t}},444,[3,54,53,445,446]);
__d(function(n,t,r,e,u,i,o){(function(){var t,r=200,e='Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',o='Expected a function',f='__lodash_hash_undefined__',a=500,c='__lodash_placeholder__',l=1,s=2,h=4,p=1,v=2,_=1,g=2,d=4,y=8,x=16,b=32,w=64,m=128,j=256,A=512,k=30,z='...',O=800,I=16,R=1,E=2,S=1/0,L=9007199254740991,W=1.7976931348623157e308,C=NaN,T=4294967295,U=4294967294,B=2147483647,$=[['ary',m],['bind',_],['bindKey',g],['curry',y],['curryRight',x],['flip',A],['partial',b],['partialRight',w],['rearg',j]],D='[object Arguments]',M='[object Array]',F='[object AsyncFunction]',N='[object Boolean]',P='[object Date]',Z='[object DOMException]',q='[object Error]',K='[object Function]',V='[object GeneratorFunction]',G='[object Map]',H='[object Number]',J='[object Null]',Y='[object Object]',Q='[object Proxy]',X='[object RegExp]',nn='[object Set]',tn='[object String]',rn='[object Symbol]',en='[object Undefined]',un='[object WeakMap]',on='[object WeakSet]',fn='[object ArrayBuffer]',an='[object DataView]',cn='[object Float32Array]',ln='[object Float64Array]',sn='[object Int8Array]',hn='[object Int16Array]',pn='[object Int32Array]',vn='[object Uint8Array]',_n='[object Uint8ClampedArray]',gn='[object Uint16Array]',dn='[object Uint32Array]',yn=/\b__p \+= '';/g,xn=/\b(__p \+=) '' \+/g,bn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,wn=/&(?:amp|lt|gt|quot|#39);/g,mn=/[&<>"']/g,jn=RegExp(wn.source),An=RegExp(mn.source),kn=/<%-([\s\S]+?)%>/g,zn=/<%([\s\S]+?)%>/g,On=/<%=([\s\S]+?)%>/g,In=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rn=/^\w*$/,En=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Sn=/[\\^$.*+?()[\]{}|]/g,Ln=RegExp(Sn.source),Wn=/^\s+|\s+$/g,Cn=/^\s+/,Tn=/\s+$/,Un=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bn=/\{\n\/\* \[wrapped with (.+)\] \*/,$n=/,? & /,Dn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Mn=/\\(\\)?/g,Fn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nn=/\w*$/,Pn=/^[-+]0x[0-9a-f]+$/i,Zn=/^0b[01]+$/i,qn=/^\[object .+?Constructor\]$/,Kn=/^0o[0-7]+$/i,Vn=/^(?:0|[1-9]\d*)$/,Gn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Hn=/($^)/,Jn=/['\n\r\u2028\u2029\\]/g,Yn="[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]",Qn="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Xn="(?:\\ud83c[\\udde6-\\uddff]){2}",nt="[\\ud800-\\udbff][\\udc00-\\udfff]",tt="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?"+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",Xn,nt].join('|')+")[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*"),rt='(?:'+["[\\u2700-\\u27bf]",Xn,nt].join('|')+')'+tt,et='(?:'+["[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?",Qn,Xn,nt,"[\\ud800-\\udfff]"].join('|')+')',ut=RegExp("['\u2019]",'g'),it=RegExp(Qn,'g'),ot=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+et+tt,'g'),ft=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[Yn,"[A-Z\\xc0-\\xd6\\xd8-\\xde]",'$'].join('|')+')',"(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[Yn,"[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])",'$'].join('|')+')',"[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0;var u=t(r(d[1]));e.Provider=u.default;var c=t(r(d[2]));e.connectAdvanced=c.default;var s=r(d[3]);e.ReactReduxContext=s.ReactReduxContext;var l=t(r(d[4]));e.connect=l.default;var o=r(d[5]);e.useDispatch=o.useDispatch;var v=r(d[6]);e.useSelector=v.useSelector;var n=r(d[7]);e.useStore=n.useStore;var h=r(d[8]),_=r(d[9]);e.batch=_.unstable_batchedUpdates;var b=t(r(d[10]));e.shallowEqual=b.default,(0,h.setBatch)(_.unstable_batchedUpdates)},446,[3,447,455,452,462,476,479,477,454,480,463]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),s=r(d[1]);e.__esModule=!0,e.default=void 0;var n=s(r(d[2])),o=s(r(d[3])),u=t(r(d[4])),c=s(r(d[5])),b=r(d[6]),p=s(r(d[7])),f=(function(t){function s(s){var o;o=t.call(this,s)||this;var u=s.store;o.notifySubscribers=o.notifySubscribers.bind((0,n.default)(o));var c=new p.default(u);return c.onStateChange=o.notifySubscribers,o.state={store:u,subscription:c},o.previousState=u.getState(),o}(0,o.default)(s,t);var c=s.prototype;return c.componentDidMount=function(){this._isMounted=!0,this.state.subscription.trySubscribe(),this.previousState!==this.props.store.getState()&&this.state.subscription.notifyNestedSubs()},c.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this.state.subscription.tryUnsubscribe(),this._isMounted=!1},c.componentDidUpdate=function(t){if(this.props.store!==t.store){this.state.subscription.tryUnsubscribe();var s=new p.default(this.props.store);s.onStateChange=this.notifySubscribers,this.setState({store:this.props.store,subscription:s})}},c.notifySubscribers=function(){this.state.subscription.notifyNestedSubs()},c.render=function(){var t=this.props.context||b.ReactReduxContext;return u.default.createElement(t.Provider,{value:this.state},this.props.children)},s})(u.Component);f.propTypes={store:c.default.shape({subscribe:c.default.func.isRequired,dispatch:c.default.func.isRequired,getState:c.default.func.isRequired}),context:c.default.object,children:c.default.any};var h=f;e.default=h},447,[2,3,8,448,59,449,452,453]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,t.__proto__=o}},448,[]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},449,[450]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(){}function o(){}o.resetWarningCache=t,m.exports=function(){function p(t,o,p,c,s,y){if(y!==n){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name='Invariant Violation',f}}function c(){return p}p.isRequired=p;var s={array:p,bool:p,func:p,number:p,object:p,string:p,symbol:p,any:p,arrayOf:c,element:p,elementType:p,instanceOf:c,node:p,objectOf:c,oneOf:c,oneOfType:c,shape:c,exact:c,checkPropTypes:o,resetWarningCache:t};return s.PropTypes=s,s}},450,[451]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},451,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.default=e.ReactReduxContext=void 0;var u=t(r(d[1])).default.createContext(null);e.ReactReduxContext=u;var l=u;e.default=l},452,[3,59]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=void 0;var t=r(d[0]),n=null,s={notify:function(){}};var u=(function(){function u(t,n){this.store=t,this.parentSub=n,this.unsubscribe=null,this.listeners=s,this.handleChangeWrapper=this.handleChangeWrapper.bind(this)}var h=u.prototype;return h.addNestedSub=function(t){return this.trySubscribe(),this.listeners.subscribe(t)},h.notifyNestedSubs=function(){this.listeners.notify()},h.handleChangeWrapper=function(){this.onStateChange&&this.onStateChange()},h.isSubscribed=function(){return Boolean(this.unsubscribe)},h.trySubscribe=function(){var s,u,h;this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.handleChangeWrapper):this.store.subscribe(this.handleChangeWrapper),this.listeners=(s=(0,t.getBatch)(),u=[],h=[],{clear:function(){h=n,u=n},notify:function(){var t=u=h;s(function(){for(var n=0;n<t.length;n++)t[n]()})},get:function(){return h},subscribe:function(t){var s=!0;return h===u&&(h=u.slice()),h.push(t),function(){s&&u!==n&&(s=!1,h===u&&(h=u.slice()),h.splice(h.indexOf(t),1))}}}))},h.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null,this.listeners.clear(),this.listeners=s)},u})();e.default=u},453,[454]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.getBatch=e.setBatch=void 0;var t=function(t){t()};e.setBatch=function(n){return t=n};e.getBatch=function(){return t}},454,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n=r(d[1]);e.__esModule=!0,e.default=function(t,n){void 0===n&&(n={});var x=n,M=x.getDisplayName,N=void 0===M?function(t){return"ConnectAdvanced("+t+")"}:M,b=x.methodName,P=void 0===b?'connectAdvanced':b,S=x.renderCountProp,E=void 0===S?void 0:S,D=x.shouldHandleStateChanges,T=void 0===D||D,_=x.storeKey,K=void 0===_?'store':_,A=x.withRef,B=void 0!==A&&A,H=x.forwardRef,W=void 0!==H&&H,U=x.context,j=void 0===U?v.ReactReduxContext:U,k=(0,u.default)(x,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);(0,s.default)(void 0===E,"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension"),(0,s.default)(!B,'withRef is removed. To access the wrapped instance, use a ref on the connected component');(0,s.default)('store'===K,"storeKey has been removed and does not do anything. To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect");var L=j;return function(n){var v=n.displayName||n.name||'Component',x=N(v),M=(0,o.default)({},k,{getDisplayName:N,methodName:P,renderCountProp:E,shouldHandleStateChanges:T,storeKey:K,displayName:x,wrappedComponentName:v,WrappedComponent:n}),b=k.pure;function S(n){return t(n.dispatch,M)}var D=b?f.useMemo:function(t){return t()};function _(t){var c=(0,f.useMemo)(function(){var n=t.forwardedRef,o=(0,u.default)(t,["forwardedRef"]);return[t.context,n,o]},[t]),v=c[0],M=c[1],N=c[2],b=(0,f.useMemo)(function(){return v&&v.Consumer&&(0,l.isContextConsumer)(f.default.createElement(v.Consumer,null))?v:L},[v,L]),P=(0,f.useContext)(b),E=Boolean(t.store),_=Boolean(P)&&Boolean(P.store);(0,s.default)(E||_,"Could not find \"store\" in the context of \""+x+"\". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to "+x+" in connect options.");var K=t.store||P.store,A=(0,f.useMemo)(function(){return S(K)},[K]),B=(0,f.useMemo)(function(){if(!T)return C;var t=new p.default(K,E?null:P.subscription),n=t.notifyNestedSubs.bind(t);return[t,n]},[K,E,P]),H=B[0],W=B[1],U=(0,f.useMemo)(function(){return E?P:(0,o.default)({},P,{subscription:H})},[E,P,H]),j=(0,f.useReducer)(y,h,R),k=j[0],O=k[0],Y=j[1];if(O&&O.error)throw O.error;var q=(0,f.useRef)(),z=(0,f.useRef)(N),F=(0,f.useRef)(),G=(0,f.useRef)(!1),I=D(function(){return F.current&&N===z.current?F.current:A(K.getState(),N)},[K,O,N]);w(function(){z.current=N,q.current=I,G.current=!1,F.current&&(F.current=null,W())}),w(function(){if(T){var t=!1,n=null,o=function(){if(!t){var o,u,c=K.getState();try{o=A(c,z.current)}catch(t){u=t,n=t}u||(n=null),o===q.current?G.current||W():(q.current=o,F.current=o,G.current=!0,Y({type:'STORE_UPDATED',payload:{latestStoreState:c,error:u}}))}};H.onStateChange=o,H.trySubscribe(),o();return function(){if(t=!0,H.tryUnsubscribe(),n)throw n}}},[K,H,A]);var J=(0,f.useMemo)(function(){return f.default.createElement(n,(0,o.default)({},I,{ref:M}))},[M,n,I]),Q=(0,f.useMemo)(function(){return T?f.default.createElement(b.Provider,{value:U},J):J},[b,J,U]);return Q}var A=b?f.default.memo(_):_;if(A.WrappedComponent=n,A.displayName=x,W){var B=f.default.forwardRef(function(t,n){return f.default.createElement(A,(0,o.default)({},t,{forwardedRef:n}))});return B.displayName=x,B.WrappedComponent=n,(0,c.default)(B,n)}return(0,c.default)(A,n)}};var o=n(r(d[2])),u=n(r(d[3])),c=n(r(d[4])),s=n(r(d[5])),f=t(r(d[6])),l=r(d[7]),p=n(r(d[8])),v=r(d[9]),h=[],C=[null,null];function y(t,n){var o=t[1];return[n.payload,o+1]}var R=function(){return[null,0]},w='undefined'!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?f.useLayoutEffect:f.useEffect},455,[2,3,24,56,456,459,59,460,453,452]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},p={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},y={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},n={};function s(p){return t.isMemo(p)?y:n[p.$$typeof]||o}n[t.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var c=Object.defineProperty,f=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,u=Object.getOwnPropertyDescriptor,O=Object.getPrototypeOf,P=Object.prototype;m.exports=function t(o,y,n){if('string'!=typeof y){if(P){var v=O(y);v&&v!==P&&t(o,v,n)}var b=f(y);l&&(b=b.concat(l(y)));for(var j=s(o),T=s(y),$=0;$<b.length;++$){var x=b[$];if(!(p[x]||n&&n[x]||T&&T[x]||j&&j[x])){var h=u(y,x);try{c(o,x,h)}catch(t){}}}return o}return o}},456,[457]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},457,[458]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var o="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for"),t=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.element"):60103,n=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.portal"):60106,f=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.fragment"):60107,c=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.strict_mode"):60108,y=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.profiler"):60114,u=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.provider"):60109,l=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.context"):60110,s=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.async_mode"):60111,p=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.concurrent_mode"):60111,b=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.forward_ref"):60112,S=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense"):60113,$=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense_list"):60120,M=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.memo"):60115,_=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.lazy"):60116,C=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.fundamental"):60117,P=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.responder"):60118;function v(o){if("object"==typeof o&&null!==o){var $=o.$$typeof;switch($){case t:switch(o=o.type){case s:case p:case f:case y:case c:case S:return o;default:switch(o=o&&o.$$typeof){case l:case b:case u:return o;default:return $}}case _:case M:case n:return $}}}function w(o){return v(o)===p}e.typeOf=v,e.AsyncMode=s,e.ConcurrentMode=p,e.ContextConsumer=l,e.ContextProvider=u,e.Element=t,e.ForwardRef=b,e.Fragment=f,e.Lazy=_,e.Memo=M,e.Portal=n,e.Profiler=y,e.StrictMode=c,e.Suspense=S,e.isValidElementType=function(o){return"string"==typeof o||"function"==typeof o||o===f||o===p||o===y||o===c||o===S||o===$||"object"==typeof o&&null!==o&&(o.$$typeof===_||o.$$typeof===M||o.$$typeof===u||o.$$typeof===l||o.$$typeof===b||o.$$typeof===C||o.$$typeof===P)},e.isAsyncMode=function(o){return w(o)||v(o)===s},e.isConcurrentMode=w,e.isContextConsumer=function(o){return v(o)===l},e.isContextProvider=function(o){return v(o)===u},e.isElement=function(o){return"object"==typeof o&&null!==o&&o.$$typeof===t},e.isForwardRef=function(o){return v(o)===b},e.isFragment=function(o){return v(o)===f},e.isLazy=function(o){return v(o)===_},e.isMemo=function(o){return v(o)===M},e.isPortal=function(o){return v(o)===n},e.isProfiler=function(o){return v(o)===y},e.isStrictMode=function(o){return v(o)===c},e.isSuspense=function(o){return v(o)===S}},458,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(n,o,t,f,s,u,c,l){if(!n){var v;if(void 0===o)v=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[t,f,s,u,c,l],h=0;(v=new Error(o.replace(/%s/g,function(){return p[h++]}))).name='Invariant Violation'}throw v.framesToPop=1,v}}},459,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},460,[461]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var o="function"==typeof Symbol&&("function"==typeof Symbol?Symbol.for:"@@for"),t=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.element"):60103,n=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.portal"):60106,f=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.fragment"):60107,c=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.strict_mode"):60108,y=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.profiler"):60114,u=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.provider"):60109,l=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.context"):60110,s=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.async_mode"):60111,p=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.concurrent_mode"):60111,b=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.forward_ref"):60112,S=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense"):60113,$=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.suspense_list"):60120,M=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.memo"):60115,_=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.lazy"):60116,C=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.fundamental"):60117,P=o?("function"==typeof Symbol?Symbol.for:"@@for")("react.responder"):60118;function v(o){if("object"==typeof o&&null!==o){var $=o.$$typeof;switch($){case t:switch(o=o.type){case s:case p:case f:case y:case c:case S:return o;default:switch(o=o&&o.$$typeof){case l:case b:case u:return o;default:return $}}case _:case M:case n:return $}}}function w(o){return v(o)===p}e.typeOf=v,e.AsyncMode=s,e.ConcurrentMode=p,e.ContextConsumer=l,e.ContextProvider=u,e.Element=t,e.ForwardRef=b,e.Fragment=f,e.Lazy=_,e.Memo=M,e.Portal=n,e.Profiler=y,e.StrictMode=c,e.Suspense=S,e.isValidElementType=function(o){return"string"==typeof o||"function"==typeof o||o===f||o===p||o===y||o===c||o===S||o===$||"object"==typeof o&&null!==o&&(o.$$typeof===_||o.$$typeof===M||o.$$typeof===u||o.$$typeof===l||o.$$typeof===b||o.$$typeof===C||o.$$typeof===P)},e.isAsyncMode=function(o){return w(o)||v(o)===s},e.isConcurrentMode=w,e.isContextConsumer=function(o){return v(o)===l},e.isContextProvider=function(o){return v(o)===u},e.isElement=function(o){return"object"==typeof o&&null!==o&&o.$$typeof===t},e.isForwardRef=function(o){return v(o)===b},e.isFragment=function(o){return v(o)===f},e.isLazy=function(o){return v(o)===_},e.isMemo=function(o){return v(o)===M},e.isPortal=function(o){return v(o)===n},e.isProfiler=function(o){return v(o)===y},e.isStrictMode=function(o){return v(o)===c},e.isSuspense=function(o){return v(o)===S}},461,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.createConnect=E,e.default=void 0;var o=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),p=t(r(d[4])),s=t(r(d[5])),l=t(r(d[6])),c=t(r(d[7])),f=t(r(d[8]));function v(t,o,n){for(var u=o.length-1;u>=0;u--){var p=o[u](t);if(p)return p}return function(o,u){throw new Error("Invalid value of type "+typeof t+" for "+n+" argument when connecting component "+u.wrappedComponentName+".")}}function P(t,o){return t===o}function E(t){var E=void 0===t?{}:t,q=E.connectHOC,S=void 0===q?u.default:q,h=E.mapStateToPropsFactories,w=void 0===h?l.default:h,M=E.mapDispatchToPropsFactories,T=void 0===M?s.default:M,C=E.mergePropsFactories,y=void 0===C?c.default:C,D=E.selectorFactory,F=void 0===D?f.default:D;return function(t,u,s,l){void 0===l&&(l={});var c=l,f=c.pure,E=void 0===f||f,q=c.areStatesEqual,h=void 0===q?P:q,M=c.areOwnPropsEqual,C=void 0===M?p.default:M,D=c.areStatePropsEqual,O=void 0===D?p.default:D,_=c.areMergedPropsEqual,N=void 0===_?p.default:_,H=(0,n.default)(c,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),B=v(t,w,'mapStateToProps'),I=v(u,T,'mapDispatchToProps'),b=v(s,y,'mergeProps');return S(F,(0,o.default)({methodName:'connect',getDisplayName:function(t){return"Connect("+t+")"},shouldHandleStateChanges:Boolean(t),initMapStateToProps:B,initMapDispatchToProps:I,initMergeProps:b,pure:E,areStatesEqual:h,areOwnPropsEqual:C,areStatePropsEqual:O,areMergedPropsEqual:N},H))}}var q=E();e.default=q},462,[3,24,56,455,463,464,472,473,474]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=function(u,o){if(n(u,o))return!0;if('object'!=typeof u||null===u||'object'!=typeof o||null===o)return!1;var f=Object.keys(u),l=Object.keys(o);if(f.length!==l.length)return!1;for(var c=0;c<f.length;c++)if(!t.call(o,f[c])||!n(u[f[c]],o[f[c]]))return!1;return!0};var t=Object.prototype.hasOwnProperty;function n(t,n){return t===n?0!==t||0!==n||1/t==1/n:t!=t&&n!=n}},463,[]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.whenMapDispatchToPropsIsFunction=t,e.whenMapDispatchToPropsIsMissing=p,e.whenMapDispatchToPropsIsObject=s,e.default=void 0;var o=r(d[0]),n=r(d[1]);function t(o){return'function'==typeof o?(0,n.wrapMapToPropsFunc)(o,'mapDispatchToProps'):void 0}function p(o){return o?void 0:(0,n.wrapMapToPropsConstant)(function(o){return{dispatch:o}})}function s(t){return t&&'object'==typeof t?(0,n.wrapMapToPropsConstant)(function(n){return(0,o.bindActionCreators)(t,n)}):void 0}var c=[t,p,s];e.default=c},464,[465,468]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,'__esModule',{value:!0});var t,n=(t=r(d[0]))&&'object'==typeof t&&'default'in t?t.default:t,o=function(){return Math.random().toString(36).substring(7).split('').join('.')},u={INIT:"@@redux/INIT"+o(),REPLACE:"@@redux/REPLACE"+o(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+o()}};function c(t){if('object'!=typeof t||null===t)return!1;for(var n=t;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(t)===n}function f(t,n){var o=n&&n.type;return"Given "+(o&&"action \""+String(o)+"\""||'an action')+", reducer \""+t+"\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined."}function s(t){Object.keys(t).forEach(function(n){var o=t[n];if(void 0===o(void 0,{type:u.INIT}))throw new Error("Reducer \""+n+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===o(void 0,{type:u.PROBE_UNKNOWN_ACTION()}))throw new Error("Reducer \""+n+"\" returned undefined when probed with a random type. Don't try to handle "+u.INIT+" or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function p(t,n){return function(){return n(t.apply(this,arguments))}}function l(t,n,o){return n in t?Object.defineProperty(t,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[n]=o,t}function h(t,n){var o=Object.keys(t);return Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(t)),n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),o}function y(t){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?h(o,!0).forEach(function(n){l(t,n,o[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):h(o).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(o,n))})}return t}function b(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return 0===n.length?function(t){return t}:1===n.length?n[0]:n.reduce(function(t,n){return function(){return t(n.apply(void 0,arguments))}})}e.__DO_NOT_USE__ActionTypes=u,e.applyMiddleware=function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return function(t){return function(){var o=t.apply(void 0,arguments),u=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},c={getState:o.getState,dispatch:function(){return u.apply(void 0,arguments)}},f=n.map(function(t){return t(c)});return y({},o,{dispatch:u=b.apply(void 0,f)(o.dispatch)})}}},e.bindActionCreators=function(t,n){if('function'==typeof t)return p(t,n);if('object'!=typeof t||null===t)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===t?'null':typeof t)+". Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?");var o={};for(var u in t){var c=t[u];'function'==typeof c&&(o[u]=p(c,n))}return o},e.combineReducers=function(t){for(var n=Object.keys(t),o={},u=0;u<n.length;u++){var c=n[u];'function'==typeof t[c]&&(o[c]=t[c])}var p,l=Object.keys(o);try{s(o)}catch(t){p=t}return function(t,n){if(void 0===t&&(t={}),p)throw p;for(var u=!1,c={},s=0;s<l.length;s++){var h=l[s],y=o[h],b=t[h],w=y(b,n);if(void 0===w){var v=f(h,n);throw new Error(v)}c[h]=w,u=u||w!==b}return u?c:t}},e.compose=b,e.createStore=function t(o,f,s){var p;if('function'==typeof f&&'function'==typeof s||'function'==typeof s&&'function'==typeof a
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t,n,u=r(d[0]),f=(t=u)&&t.__esModule?t:{default:t};n='undefined'!=typeof self?self:'undefined'!=typeof window?window:void 0!==g?g:void 0!==m?m:Function('return this')();var o=(0,f.default)(n);e.default=o},466,[467]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(b){var o,t=b.Symbol;'function'==typeof t?t.observable?o=t.observable:(o=t('observable'),t.observable=o):o='@@observable';return o}},467,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]);e.__esModule=!0,e.wrapMapToPropsConstant=function(n){return function(o,p){var s=n(o,p);function t(){return s}return t.dependsOnOwnProps=!1,t}},e.getDependsOnOwnProps=o,e.wrapMapToPropsFunc=function(n,p){return function(p,s){s.displayName;var t=function(n,o){return t.dependsOnOwnProps?t.mapToProps(n,o):t.mapToProps(n)};return t.dependsOnOwnProps=!0,t.mapToProps=function(p,s){t.mapToProps=n,t.dependsOnOwnProps=o(n);var u=t(p,s);return'function'==typeof u&&(t.mapToProps=u,t.dependsOnOwnProps=o(u),u=t(p,s)),u},t}};n(r(d[1]));function o(n){return null!==n.dependsOnOwnProps&&void 0!==n.dependsOnOwnProps?Boolean(n.dependsOnOwnProps):1!==n.length}},468,[3,469]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.default=function(t,c,f){(0,u.default)(t)||(0,n.default)(f+"() in "+c+" must return a plain object. Instead received "+t+".")};var u=t(r(d[1])),n=t(r(d[2]))},469,[3,470,471]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=function(t){if('object'!=typeof t||null===t)return!1;var o=Object.getPrototypeOf(t);if(null===o)return!0;var u=o;for(;null!==Object.getPrototypeOf(u);)u=Object.getPrototypeOf(u);return o===u}},470,[]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.default=function(o){'undefined'!=typeof console&&'function'==typeof console.error&&console.error(o);try{throw new Error(o)}catch(o){}}},471,[]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.whenMapStateToPropsIsFunction=t,e.whenMapStateToPropsIsMissing=n,e.default=void 0;var o=r(d[0]);function t(t){return'function'==typeof t?(0,o.wrapMapToPropsFunc)(t,'mapStateToProps'):void 0}function n(t){return t?void 0:(0,o.wrapMapToPropsConstant)(function(){return{}})}var u=[t,n];e.default=u},472,[468]);
__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]);e.__esModule=!0,e.defaultMergeProps=u,e.wrapMergePropsFunc=o,e.whenMergePropsIsFunction=f,e.whenMergePropsIsOmitted=c,e.default=void 0;var t=n(r(d[1]));n(r(d[2]));function u(n,u,o){return(0,t.default)({},o,n,u)}function o(n){return function(t,u){u.displayName;var o,f=u.pure,c=u.areMergedPropsEqual,s=!1;return function(t,u,p){var v=n(t,u,p);return s?f&&c(v,o)||(o=v):(s=!0,o=v),o}}}function f(n){return'function'==typeof n?o(n):void 0}function c(n){return n?void 0:function(){return u}}var s=[f,c];e.default=s},473,[3,24,469]);
__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]);e.__esModule=!0,e.impureFinalPropsSelectorFactory=o,e.pureFinalPropsSelectorFactory=p,e.default=function(n,u){var s=u.initMapStateToProps,c=u.initMapDispatchToProps,P=u.initMergeProps,l=(0,t.default)(u,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),f=s(n,l),M=c(n,l),O=P(n,l);return(l.pure?p:o)(f,M,O,n,l)};var t=n(r(d[1]));n(r(d[2]));function o(n,t,o,p){return function(u,s){return o(n(u,s),t(p,s),s)}}function p(n,t,o,p,u){var s,c,P,l,f,M=u.areStatesEqual,O=u.areOwnPropsEqual,S=u.areStatePropsEqual,v=!1;function w(u,v){var w,F,T=!O(v,c),_=!M(u,s);return s=u,c=v,T&&_?(P=n(s,c),t.dependsOnOwnProps&&(l=t(p,c)),f=o(P,l,c)):T?(n.dependsOnOwnProps&&(P=n(s,c)),t.dependsOnOwnProps&&(l=t(p,c)),f=o(P,l,c)):_?(w=n(s,c),F=!S(w,P),P=w,F&&(f=o(P,l,c)),f):f}return function(u,M){return v?w(u,M):(P=n(s=u,c=M),l=t(p,c),f=o(P,l,c),v=!0,f)}}},474,[3,56,475]);
__d(function(g,r,i,a,m,e,d){"use strict";var o=r(d[0]);e.__esModule=!0,e.default=function(o,p,n,s){t(o,'mapStateToProps',s),t(p,'mapDispatchToProps',s),t(n,'mergeProps',s)};var p=o(r(d[1]));function t(o,t,n){if(!o)throw new Error("Unexpected value for "+t+" in "+n+".");'mapStateToProps'!==t&&'mapDispatchToProps'!==t||o.hasOwnProperty('dependsOnOwnProps')||(0,p.default)("The selector for "+t+" of "+n+" did not specify a value for dependsOnOwnProps.")}},475,[3,471]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.useDispatch=function(){return(0,t.useStore)().dispatch};var t=r(d[0])},476,[477]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0,e.useStore=function(){return(0,t.useReduxContext)().store};var t=r(d[0])},477,[478]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.useReduxContext=function(){var t=(0,n.useContext)(o.ReactReduxContext);return(0,u.default)(t,'could not find react-redux context value; please ensure the component is wrapped in a <Provider>'),t};var n=r(d[1]),u=t(r(d[2])),o=r(d[3])},478,[3,59,459,452]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);e.__esModule=!0,e.useSelector=function(t,l){void 0===l&&(l=f);(0,u.default)(t,"You must pass a selector to useSelectors");var h,v=(0,c.useReduxContext)(),w=v.store,y=v.subscription,b=(0,n.useReducer)(function(t){return t+1},0)[1],S=(0,n.useMemo)(function(){return new o.default(w,y)},[w,y]),R=(0,n.useRef)(),p=(0,n.useRef)(),_=(0,n.useRef)();try{h=t!==p.current||R.current?t(w.getState()):_.current}catch(t){var E="An error occured while selecting the store state: "+t.message+".";throw R.current&&(E+="\nThe error may be correlated with this previous error:\n"+R.current.stack+"\n\nOriginal stack trace:"),new Error(E)}return s(function(){p.current=t,_.current=h,R.current=void 0}),s(function(){function t(){try{var t=p.current(w.getState());if(l(t,_.current))return;_.current=t}catch(t){R.current=t}b({})}return S.onStateChange=t,S.trySubscribe(),t(),function(){return S.tryUnsubscribe()}},[w,S]),h};var n=r(d[1]),u=t(r(d[2])),c=r(d[3]),o=t(r(d[4])),s='undefined'!=typeof window?n.useLayoutEffect:n.useEffect,f=function(t,n){return t===n}},479,[3,59,459,478,453]);
__d(function(g,r,i,a,m,e,d){"use strict";e.__esModule=!0;var t=r(d[0]);e.unstable_batchedUpdates=t.unstable_batchedUpdates},480,[15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),f=r(d[4]),o=new((function(){function t(){(0,l.default)(this,t),this._elements=[]}return(0,u.default)(t,[{key:"applyMiddleware",value:function(){for(var t=arguments.length,l=new Array(t),u=0;u<t;u++)l[u]=arguments[u];return f.applyMiddleware.apply(void 0,(0,n.default)(this._elements).concat(l))}},{key:"register",value:function(t){this._elements.push(t)}}]),t})());e.default=o},481,[3,31,4,5,465]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),n=r(d[4]),c=t(r(d[5])),o=t(r(d[6])),f=new((function(){function t(){(0,u.default)(this,t),this._defaultStates={},this._elements={}}return(0,l.default)(t,[{key:"getPersistedState",value:function(){for(var t={},s=Object.keys(this._elements),u=0;u<s.length;u++){var l=s[u],c=this._getPersistedSubtree(l,this._elements[l],this._defaultStates[l]);void 0!==c&&(t[l]=c)}if(0===Object.keys(t).length){var f=n.jitsiLocalStorage.getItem("jitsi-state");if(f){try{f=JSON.parse(f)}catch(t){o.default.error('Error parsing persisted state',f,t),f={}}t=this._getFilteredState(f),this.persistState(t),n.jitsiLocalStorage.removeItem("jitsi-state")}}return this._checksum=this._calculateChecksum(t),t}},{key:"persistState",value:function(t){var s=this._getFilteredState(t),u=this._calculateChecksum(s);if(u!==this._checksum){for(var l=Object.keys(s),c=0;c<l.length;c++){var f=l[c];try{n.jitsiLocalStorage.setItem(f,JSON.stringify(s[f]))}catch(t){o.default.error('Error persisting redux subtree',f,t)}}o.default.info("redux state persisted. "+this._checksum+" -> "+u),this._checksum=u}}},{key:"register",value:function(t){var s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],u=arguments.length>2?arguments[2]:void 0;this._elements[t]=s,this._defaultStates[t]=u}},{key:"_calculateChecksum",value:function(t){try{return c.default.hex(JSON.stringify(t)||'')}catch(t){return o.default.error('Error calculating checksum for state',t),''}}},{key:"_getFilteredState",value:function(t){for(var s={},u=Object.keys(this._elements),l=0;l<u.length;l++){var n=u[l];t[n]&&(s[n]=this._getFilteredSubtree(t[n],this._elements[n]))}return s}},{key:"_getFilteredSubtree",value:function(t,s){var u;if('object'==typeof s){u={};for(var l=Object.keys(t),n=0;n<l.length;n++){var c=l[n];s[c]&&(u[c]=t[c])}}else s&&(u=t);return u}},{key:"_getPersistedSubtree",value:function(t,s,u){var l=n.jitsiLocalStorage.getItem(t);if(l)try{l=JSON.parse(l);var c=this._getFilteredSubtree(l,s);if(void 0!==c)return this._mergeDefaults(c,u)}catch(s){o.default.error('Error parsing persisted subtree',t,l,s)}}},{key:"_mergeDefaults",value:function(t,u){return u?Array.isArray(t)?void 0:(0,s.default)({},u,t):t}}]),t})());e.default=f},482,[3,53,4,5,483,493,494]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},483,[484,486,488,492]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getAvatarURL=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},v=t.avatarID,f=t.email,l=t.id,s=n.urlPrefix,c=void 0===s?'https://abotars.jitsi.net/meeple/':s,h=n.urlSuffix,w=void 0===h?'':h;return u(f)||o(v||l,c,w)},e.getGravatarURL=u;var n=t(r(d[1]));function o(t,o,u){return o+n.default.hex(t.trim().toLowerCase())+u}function u(t){var o;return"https://www.gravatar.com/avatar/"+((o=t)&&o.indexOf('@')>0?n.default.hex(t.trim().toLowerCase()):t)+'?d=404&size=200'}},484,[3,485]);
__d(function(g,r,i,a,m,e,d){!(function(){'use strict';var ERROR='input is invalid type',WINDOW='object'==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&'object'==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&'object'==typeof process&&process.versions&&process.versions.node;NODE_JS?root=g:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&'object'==typeof m&&m.exports,AMD='function'==typeof define&&define.amd,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&'undefined'!=typeof ArrayBuffer,HEX_CHARS='0123456789abcdef'.split(''),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=['hex','array','digest','buffer','arrayBuffer','base64'],BASE64_ENCODE_CHAR='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return'[object Array]'===Object.prototype.toString.call(t)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return'object'==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t){return function(s){return new Md5(!0).update(s)[t]()}},createMethod=function(){var t=createOutputMethod('hex');NODE_JS&&(t=nodeWrap(t)),t.create=function(){return new Md5},t.update=function(s){return t.create().update(s)};for(var s=0;s<OUTPUT_TYPES.length;++s){var o=OUTPUT_TYPES[s];t[o]=createOutputMethod(o)}return t},nodeWrap=function nodeWrap(method){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),nodeMethod=function(t){if('string'==typeof t)return crypto.createHash('md5').update(t,'utf8').digest('hex');if(null===t||void 0===t)throw ERROR;return t.constructor===ArrayBuffer&&(t=new Uint8Array(t)),Array.isArray(t)||ArrayBuffer.isView(t)||t.constructor===Buffer?crypto.createHash('md5').update(new Buffer(t)).digest('hex'):method(t)};return nodeMethod};function Md5(t){if(t)blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks,this.buffer8=buffer8;else if(ARRAY_BUFFER){var s=new ArrayBuffer(68);this.buffer8=new Uint8Array(s),this.blocks=new Uint32Array(s)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}Md5.prototype.update=function(t){if(!this.finalized){var s,o=typeof t;if('string'!==o){if('object'!==o)throw ERROR;if(null===t)throw ERROR;if(ARRAY_BUFFER&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||ARRAY_BUFFER&&ArrayBuffer.isView(t)))throw ERROR;s=!0}for(var h,f,n=0,A=t.length,u=this.blocks,R=this.buffer8;n<A;){if(this.hashed&&(this.hashed=!1,u[0]=u[16],u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),s)if(ARRAY_BUFFER)for(f=this.start;n<A&&f<64;++n)R[f++]=t[n];else for(f=this.start;n<A&&f<64;++n)u[f>>2]|=t[n]<<SHIFT[3&f++];else if(ARRAY_BUFFER)for(f=this.start;n<A&&f<64;++n)(h=t.charCodeAt(n))<128?R[f++]=h:h<2048?(R[f++]=192|h>>6,R[f++]=128|63&h):h<55296||h>=57344?(R[f++]=224|h>>12,R[f++]=128|h>>6&63,R[f++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),R[f++]=240|h>>18,R[f++]=128|h>>12&63,R[f++]=128|h>>6&63,R[f++]=128|63&h);else for(f=this.start;n<A&&f<64;++n)(h=t.charCodeAt(n))<128?u[f>>2]|=h<<SHIFT[3&f++]:h<2048?(u[f>>2]|=(192|h>>6)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]):h<55296||h>=57344?(u[f>>2]|=(224|h>>12)<<SHIFT[3&f++],u[f>>2]|=(128|h>>6&63)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),u[f>>2]|=(240|h>>18)<<SHIFT[3&f++],u[f>>2]|=(128|h>>12&63)<<SHIFT[3&f++],u[f>>2]|=(128|h>>6&63)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]);this.lastByteIndex=f,this.bytes+=f-this.start,f>=64?(this.start=f-64,this.hash(),this.hashed=!0):this.start=f
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BrowserCapabilities",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},486,[3,487]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),n=r(d[4]),p=(function(){function t(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},p=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=arguments.length>2?arguments[2]:void 0;(0,u.default)(this,t);var c,f=new n.BrowserDetection(l);if('object'==typeof o&&'string'==typeof f.getVersion())for(var v=o[f.getName()]||[],b=0;b<v.length;b++){var h=v[b];if('object'==typeof h){var _=h.version;if(!_||!f.isVersionGreaterThan(_)){c=h;break}}}c&&c.capabilities?this._capabilities=p?(0,s.default)({},c.capabilities,c.iframeCapabilities):c.capabilities:this._capabilities={isSupported:!1},void 0===this._capabilities.isSupported?this._capabilities.isSupported=!0:!1===this._capabilities.isSupported&&(this._capabilities={isSupported:!1})}return(0,o.default)(t,[{key:"isSupported",value:function(){return this._capabilities.isSupported}},{key:"supportsAudioIn",value:function(){return this._capabilities.audioIn||!1}},{key:"supportsAudioOut",value:function(){return this._capabilities.audioOut||!1}},{key:"supportsScreenSharing",value:function(){return this._capabilities.screenSharing||!1}},{key:"supportsVideoIn",value:function(){return this._capabilities.videoIn||!1}},{key:"supportsVideoOut",value:function(){return this._capabilities.videoOut||!1}}]),t})();e.default=p},487,[3,53,4,5,488]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BrowserDetection",{enumerable:!0,get:function(){return n.default}}),e.browsers=void 0;var n=o(r(d[2])),u=t(r(d[3]));e.browsers=u},488,[2,3,489,491]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),v=r(d[5]),c={Chrome:v.CHROME,Chromium:v.CHROME,Opera:v.OPERA,Firefox:v.FIREFOX,'Internet Explorer':v.INTERNET_EXPLORER,Safari:v.SAFARI};function h(){var n=navigator.userAgent,t={name:v.UNKNOWN,version:void 0};if(n.match(/Chrome/)&&!n.match(/Edge/))if(n.match(/Edg(A?)/)){var o=n.match(/Chrome\/([\d.]+)/)[1];Number.parseInt(o,10)>72&&(t.name=v.CHROME,t.version=o)}else t.name=v.CHROME,t.version=n.match(/Chrome\/([\d.]+)/)[1];return t}function f(){var n=navigator.userAgent;if(n.match(/Electron/)){var t=n.match(/Electron\/([\d.]+)/)[1];return{name:v.ELECTRON,version:t}}}function l(){var n=navigator.userAgent;if(n.match(/JitsiMeetNW/)){var t=n.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:v.NWJS,version:t}}}function E(){var n,t,o=navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i);if(o||'ReactNative'===navigator.product)return o&&o.length>2&&(t=o[1],n=o[2]),t||(t='react-native'),n||(n='unknown'),{name:v.REACT_NATIVE,version:n}}function _(n){for(var t,o=[E,f,l],u=0;u<o.length;u++)if(t=o[u]())return t;var s=n.getBrowserName();return s in c?{name:c[s],version:n.getBrowserVersion()}:(t=h())||{name:v.UNKNOWN,version:void 0}}var N=(function(){function n(t){var u,h;if((0,o.default)(this,n),this._bowser=s.default.getParser(navigator.userAgent),void 0===t){var f=_(this._bowser);u=f.name,h=f.version}else t.name in c?(u=c[t.name],h=t.version):(u=v.UNKNOWN,h=void 0);this._name=u,this._version=h}return(0,u.default)(n,[{key:"getName",value:function(){return this._name}},{key:"isChrome",value:function(){return this._name===v.CHROME}},{key:"isOpera",value:function(){return this._name===v.OPERA}},{key:"isFirefox",value:function(){return this._name===v.FIREFOX}},{key:"isIExplorer",value:function(){return this._name===v.INTERNET_EXPLORER}},{key:"isSafari",value:function(){return this._name===v.SAFARI}},{key:"isNWJS",value:function(){return this._name===v.NWJS}},{key:"isElectron",value:function(){return this._name===v.ELECTRON}},{key:"isReactNative",value:function(){return this._name===v.REACT_NATIVE}},{key:"getVersion",value:function(){return this._version}},{key:"_checkCondition",value:function(n){if(this._version)return this._bowser.satisfies(n)}},{key:"isVersionGreaterThan",value:function(n){return this._checkCondition((0,t.default)({},this._name,">"+n))}},{key:"isVersionLessThan",value:function(n){return this._checkCondition((0,t.default)({},this._name,"<"+n))}},{key:"isVersionEqualTo",value:function(n){return this._checkCondition((0,t.default)({},this._name,"~"+n))}}]),n})();e.default=N},489,[3,54,4,5,490,491]);
__d(function(g,r,i,a,m,e,d){var t,n,s=r(d[0]);t=this,n=function(){return(function(t){var n={};function s(o){if(n[o])return n[o].exports;var u=n[o]={i:o,l:!1,exports:{}};return t[o].call(u.exports,u,u.exports,s),u.l=!0,u.exports}return s.m=t,s.c=n,s.d=function(t,n,o){s.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:o})},s.r=function(t){"undefined"!=typeof Symbol&&("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag")&&Object.defineProperty(t,"function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag",{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.t=function(t,n){if(1&n&&(t=s(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(s.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var u in t)s.d(o,u,function(n){return t[n]}.bind(null,u));return o},s.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(n,"a",n),n},s.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},s.p="",s(s.s=90)})({17:function(t,n,s){"use strict";n.__esModule=!0,n.default=void 0;var o=s(18),u=(function(){function t(){}return t.getFirstMatch=function(t,n){var s=n.match(t);return s&&s.length>0&&s[1]||""},t.getSecondMatch=function(t,n){var s=n.match(t);return s&&s.length>1&&s[2]||""},t.matchAndReturnConst=function(t,n,s){if(t.test(n))return s},t.getWindowsVersionName=function(t){switch(t){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},t.getMacOSVersionName=function(t){var n=t.split(".").splice(0,2).map(function(t){return parseInt(t,10)||0});if(n.push(0),10===n[0])switch(n[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},t.getAndroidVersionName=function(t){var n=t.split(".").splice(0,2).map(function(t){return parseInt(t,10)||0});if(n.push(0),!(1===n[0]&&n[1]<5))return 1===n[0]&&n[1]<6?"Cupcake":1===n[0]&&n[1]>=6?"Donut":2===n[0]&&n[1]<2?"Eclair":2===n[0]&&2===n[1]?"Froyo":2===n[0]&&n[1]>2?"Gingerbread":3===n[0]?"Honeycomb":4===n[0]&&n[1]<1?"Ice Cream Sandwich":4===n[0]&&n[1]<4?"Jelly Bean":4===n[0]&&n[1]>=4?"KitKat":5===n[0]?"Lollipop":6===n[0]?"Marshmallow":7===n[0]?"Nougat":8===n[0]?"Oreo":9===n[0]?"Pie":void 0},t.getVersionPrecision=function(t){return t.split(".").length},t.compareVersions=function(n,s,o){void 0===o&&(o=!1);var u=t.getVersionPrecision(n),c=t.getVersionPrecision(s),f=Math.max(u,c),l=0,h=t.map([n,s],function(n){var s=f-t.getVersionPrecision(n),o=n+new Array(s+1).join(".0");return t.map(o.split("."),function(t){return new Array(20-t.length).join("0")+t}).reverse()});for(o&&(l=f-Math.min(u,c)),f-=1;f>=l;){if(h[0][f]>h[1][f])return 1;if(h[0][f]===h[1][f]){if(f===l)return 0;f-=1}else if(h[0][f]<h[1][f])return-1}},t.map=function(t,n){var s,o=[];if(Array.prototype.map)return Array.prototype.map.call(t,n);for(s=0;s<t.length;s+=1)o.push(n(t[s]));return o},t.getBrowserAlias=function(t){return o.BROWSER_ALIASES_MAP[t]},t.getBrowserTypeByAlias=function(t){return o.BROWSER_MAP[t]||""},t})();n.default=u,t.exports=n.default},18:function(t,n,s){"use strict";n.__esModule=!0,n.ENGINE_MAP=n.OS_MAP=n.PLATFORMS_MAP=n.BROWSER_MAP=n.BROWSER_ALIASES_MAP=void 0,n.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UNKNOWN=e.REACT_NATIVE=e.ELECTRON=e.NWJS=e.SAFARI=e.INTERNET_EXPLORER=e.FIREFOX=e.OPERA=e.CHROME=void 0;e.CHROME='chrome';e.OPERA='opera';e.FIREFOX='firefox';e.INTERNET_EXPLORER='iexplorer';e.SAFARI='safari';e.NWJS='nwjs';e.ELECTRON='electron';e.REACT_NATIVE='react-native';e.UNKNOWN='unknown'},491,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.jitsiLocalStorage=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),f=t(r(d[5])),c=(function(){function t(){(0,l.default)(this,t)}return(0,f.default)(t,[{key:"getItem",value:function(){}},{key:"setItem",value:function(){}},{key:"removeItem",value:function(){}},{key:"key",value:function(){}}]),t})(),s=new((function(t){function s(){var t,o;(0,l.default)(this,s),t=(0,n.default)(this,(0,u.default)(s).call(this));try{o=window.localStorage}catch(t){}return t.storage=o||new c,t}return(0,o.default)(s,t),(0,f.default)(s,[{key:"getItem",value:function(t){return this.storage.getItem(t)}},{key:"setItem",value:function(t,n){return this.storage.setItem(t,n)}},{key:"removeItem",value:function(t){return this.storage.removeItem(t)}},{key:"key",value:function(t){return this.storage.key(t)}}]),s})(c));e.jitsiLocalStorage=s},492,[3,6,9,10,4,5]);
__d(function(g,r,i,a,m,e,d){!(function(){'use strict';var ERROR='input is invalid type',WINDOW='object'==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&'object'==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&'object'==typeof process&&process.versions&&process.versions.node;NODE_JS?root=g:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&'object'==typeof m&&m.exports,AMD='function'==typeof define&&define.amd,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&'undefined'!=typeof ArrayBuffer,HEX_CHARS='0123456789abcdef'.split(''),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=['hex','array','digest','buffer','arrayBuffer','base64'],BASE64_ENCODE_CHAR='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return'[object Array]'===Object.prototype.toString.call(t)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return'object'==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t){return function(s){return new Md5(!0).update(s)[t]()}},createMethod=function(){var t=createOutputMethod('hex');NODE_JS&&(t=nodeWrap(t)),t.create=function(){return new Md5},t.update=function(s){return t.create().update(s)};for(var s=0;s<OUTPUT_TYPES.length;++s){var o=OUTPUT_TYPES[s];t[o]=createOutputMethod(o)}return t},nodeWrap=function nodeWrap(method){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),nodeMethod=function(t){if('string'==typeof t)return crypto.createHash('md5').update(t,'utf8').digest('hex');if(null===t||void 0===t)throw ERROR;return t.constructor===ArrayBuffer&&(t=new Uint8Array(t)),Array.isArray(t)||ArrayBuffer.isView(t)||t.constructor===Buffer?crypto.createHash('md5').update(new Buffer(t)).digest('hex'):method(t)};return nodeMethod};function Md5(t){if(t)blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks,this.buffer8=buffer8;else if(ARRAY_BUFFER){var s=new ArrayBuffer(68);this.buffer8=new Uint8Array(s),this.blocks=new Uint32Array(s)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0}Md5.prototype.update=function(t){if(!this.finalized){var s,o=typeof t;if('string'!==o){if('object'!==o)throw ERROR;if(null===t)throw ERROR;if(ARRAY_BUFFER&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||ARRAY_BUFFER&&ArrayBuffer.isView(t)))throw ERROR;s=!0}for(var h,f,n=0,A=t.length,u=this.blocks,R=this.buffer8;n<A;){if(this.hashed&&(this.hashed=!1,u[0]=u[16],u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),s)if(ARRAY_BUFFER)for(f=this.start;n<A&&f<64;++n)R[f++]=t[n];else for(f=this.start;n<A&&f<64;++n)u[f>>2]|=t[n]<<SHIFT[3&f++];else if(ARRAY_BUFFER)for(f=this.start;n<A&&f<64;++n)(h=t.charCodeAt(n))<128?R[f++]=h:h<2048?(R[f++]=192|h>>6,R[f++]=128|63&h):h<55296||h>=57344?(R[f++]=224|h>>12,R[f++]=128|h>>6&63,R[f++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),R[f++]=240|h>>18,R[f++]=128|h>>12&63,R[f++]=128|h>>6&63,R[f++]=128|63&h);else for(f=this.start;n<A&&f<64;++n)(h=t.charCodeAt(n))<128?u[f>>2]|=h<<SHIFT[3&f++]:h<2048?(u[f>>2]|=(192|h>>6)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]):h<55296||h>=57344?(u[f>>2]|=(224|h>>12)<<SHIFT[3&f++],u[f>>2]|=(128|h>>6&63)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),u[f>>2]|=(240|h>>18)<<SHIFT[3&f++],u[f>>2]|=(128|h>>12&63)<<SHIFT[3&f++],u[f>>2]|=(128|h>>6&63)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]);this.lastByteIndex=f,this.bytes+=f-this.start,f>=64?(this.start=f-64,this.hash(),this.hashed=!0):this.start=f}return this
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/redux');e.default=t},494,[495]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.getLogger=function(o){var t='ReactNative'===navigator.product?f:v;return(0,l.getLogger)(o,void 0,t)},e._initLogging=void 0;var l=t(r(d[2])),n=o(r(d[3])),u=o(r(d[4])),v={},f={disableCallerInfo:!0};var s=n.default.once(function(){if('ReactNative'===navigator.product){var o=r(d[5]).default;l.default.setGlobalOptions(f),o.setGlobalLogOptions(f),l.default.removeGlobalTransport(console),o.removeGlobalLogTransport(console),l.default.addGlobalTransport(u.default),o.addGlobalLogTransport(u.default)}});e._initLogging=s},495,[3,2,392,445,496,503]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=r(d[2]),u=r(d[3]),f=o.NativeModules.LogBridge;function c(n){var t,o=n.stack;return'function'==typeof n.cause&&(t=n.cause())&&(o+="\nCaused by: "+c(t)),o}var s=['trace','debug','info','log','warn','error'].reduce(function(n,o){return n[o]=function(n){for(var s=arguments.length,v=new Array(s>1?s-1:0),l=1;l<s;l++)v[l-1]=arguments[l];var y=v.map(function(n){if(n instanceof Error){var t={message:n.message,code:n.code,stack:c(n)};return"Error("+n.name+")"+JSON.stringify(t)}return n}),p=u.format.apply(void 0,(0,t.default)(y));f[o](p)},n},{});e.default=s},496,[3,31,15,497]);
__d(function(g,r,i,a,m,e,d){var t=Object.getOwnPropertyDescriptors||function(t){for(var n=Object.keys(t),o={},u=0;u<n.length;u++)o[n[u]]=Object.getOwnPropertyDescriptor(t,n[u]);return o},n=/%[sdj%]/g;e.format=function(t){if(!x(t)){for(var o=[],u=0;u<arguments.length;u++)o.push(s(arguments[u]));return o.join(' ')}u=1;for(var c=arguments,l=c.length,p=String(t).replace(n,function(t){if('%%'===t)return'%';if(u>=l)return t;switch(t){case'%s':return String(c[u++]);case'%d':return Number(c[u++]);case'%j':try{return JSON.stringify(c[u++])}catch(t){return'[Circular]'}default:return t}}),f=c[u];u<l;f=c[++u])S(f)||!N(f)?p+=' '+f:p+=' '+s(f);return p},e.deprecate=function(t,n){if('undefined'!=typeof process&&!0===process.noDeprecation)return t;if('undefined'==typeof process)return function(){return e.deprecate(t,n).apply(this,arguments)};var o=!1;return function(){if(!o){if(process.throwDeprecation)throw new Error(n);process.traceDeprecation?console.trace(n):console.error(n),o=!0}return t.apply(this,arguments)}};var o={},u=/^$/;if(process.env.NODE_DEBUG){var c=process.env.NODE_DEBUG;c=c.replace(/[|\\{}()[\]^$+?.]/g,'\\$&').replace(/\*/g,'.*').replace(/,/g,'$|^').toUpperCase(),u=new RegExp('^'+c+'$','i')}function s(t,n){var o={seen:[],stylize:p};return arguments.length>=3&&(o.depth=arguments[2]),arguments.length>=4&&(o.colors=arguments[3]),E(n)?o.showHidden=n:n&&e._extend(o,n),D(o.showHidden)&&(o.showHidden=!1),D(o.depth)&&(o.depth=2),D(o.colors)&&(o.colors=!1),D(o.customInspect)&&(o.customInspect=!0),o.colors&&(o.stylize=l),y(o,t,o.depth)}function l(t,n){var o=s.styles[n];return o?"\x1b["+s.colors[o][0]+'m'+t+"\x1b["+s.colors[o][1]+'m':t}function p(t,n){return t}function f(t){var n={};return t.forEach(function(t,o){n[t]=!0}),n}function y(t,n,o){if(t.customInspect&&n&&F(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var u=n.inspect(o,t);return x(u)||(u=y(t,u,o)),u}var c=b(t,n);if(c)return c;var s=Object.keys(n),l=f(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),$(n)&&(s.indexOf('message')>=0||s.indexOf('description')>=0))return h(n);if(0===s.length){if(F(n)){var p=n.name?': '+n.name:'';return t.stylize('[Function'+p+']','special')}if(P(n))return t.stylize(RegExp.prototype.toString.call(n),'regexp');if(T(n))return t.stylize(Date.prototype.toString.call(n),'date');if($(n))return h(n)}var E,S='',z=!1,D=['{','}'];(w(n)&&(z=!0,D=['[',']']),F(n))&&(S=' [Function'+(n.name?': '+n.name:'')+']');return P(n)&&(S=' '+RegExp.prototype.toString.call(n)),T(n)&&(S=' '+Date.prototype.toUTCString.call(n)),$(n)&&(S=' '+h(n)),0!==s.length||z&&0!=n.length?o<0?P(n)?t.stylize(RegExp.prototype.toString.call(n),'regexp'):t.stylize('[Object]','special'):(t.seen.push(n),E=z?v(t,n,o,l,s):s.map(function(u){return O(t,n,o,l,u,z)}),t.seen.pop(),j(E,S,D)):D[0]+S+D[1]}function b(t,n){if(D(n))return t.stylize('undefined','undefined');if(x(n)){var o='\''+JSON.stringify(n).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+'\'';return t.stylize(o,'string')}return z(n)?t.stylize(''+n,'number'):E(n)?t.stylize(''+n,'boolean'):S(n)?t.stylize('null','null'):void 0}function h(t){return'['+Error.prototype.toString.call(t)+']'}function v(t,n,o,u,c){for(var s=[],l=0,p=n.length;l<p;++l)R(n,String(l))?s.push(O(t,n,o,u,String(l),!0)):s.push('');return c.forEach(function(c){c.match(/^\d+$/)||s.push(O(t,n,o,u,c,!0))}),s}function O(t,n,o,u,c,s){var l,p,f;if((f=Object.getOwnPropertyDescriptor(n,c)||{value:n[c]}).get?p=f.set?t.stylize('[Getter/Setter]','special'):t.stylize('[Getter]','special'):f.set&&(p=t.stylize('[Setter]','special')),R(u,c)||(l='['+c+']'),p||(t.seen.indexOf(f.value)<0?(p=S(o)?y(t,f.value,null):y(t,f.value,o-1)).indexOf('\n')>-1&&(p=s?p.split('\n').map(function(t){return' '+t}).join('\n').substr(2):'\n'+p.split('\n').map(function(t){return' '+t}).join('\n')):p=t.stylize('[Circular]','special')),D(l)){if(s&&c.match(/^\d+$/))return p;(l=JSON.stringify(''+c)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=t.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]),t=r(d[1]),o=r(d[2]);function f(n){return n.call.bind(n)}var u='undefined'!=typeof BigInt,c='undefined'!=typeof Symbol,y=c&&void 0!==("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag"),p='undefined'!=typeof Uint8Array,s='undefined'!=typeof ArrayBuffer;if(p&&y)var A=Object.getPrototypeOf(Uint8Array.prototype),b=f(Object.getOwnPropertyDescriptor(A,"function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag").get);var l=f(Object.prototype.toString),j=f(Number.prototype.valueOf),w=f(String.prototype.valueOf),S=f(Boolean.prototype.valueOf);if(u)var B=f(BigInt.prototype.valueOf);if(c)var k=f(("function"==typeof Symbol?Symbol.prototype:"@@prototype").valueOf);function I(n,t){if('object'!=typeof n)return!1;try{return t(n),!0}catch(n){return!1}}function O(n){return p&&y?void 0!==b(n):M(n)||U(n)||v(n)||W(n)||h(n)||F(n)||V(n)||P(n)||D(n)||T(n)||C(n)}function M(t){return p&&y?'Uint8Array'===b(t):'[object Uint8Array]'===l(t)||n(t)&&void 0!==t.buffer}function U(n){return p&&y?'Uint8ClampedArray'===b(n):'[object Uint8ClampedArray]'===l(n)}function v(n){return p&&y?'Uint16Array'===b(n):'[object Uint16Array]'===l(n)}function W(n){return p&&y?'Uint32Array'===b(n):'[object Uint32Array]'===l(n)}function h(n){return p&&y?'Int8Array'===b(n):'[object Int8Array]'===l(n)}function F(n){return p&&y?'Int16Array'===b(n):'[object Int16Array]'===l(n)}function V(n){return p&&y?'Int32Array'===b(n):'[object Int32Array]'===l(n)}function P(n){return p&&y?'Float32Array'===b(n):'[object Float32Array]'===l(n)}function D(n){return p&&y?'Float64Array'===b(n):'[object Float64Array]'===l(n)}function T(n){return p&&y?'BigInt64Array'===b(n):'[object BigInt64Array]'===l(n)}function C(n){return p&&y?'BigUint64Array'===b(n):'[object BigUint64Array]'===l(n)}function x(n){return'[object Map]'===l(n)}function E(n){return'[object Set]'===l(n)}function G(n){return'[object WeakMap]'===l(n)}function N(n){return'[object WeakSet]'===l(n)}function _(n){return'[object ArrayBuffer]'===l(n)}function q(n){return'undefined'!=typeof ArrayBuffer&&(_.working?_(n):n instanceof ArrayBuffer)}function z(n){return'[object DataView]'===l(n)}function H(n){return'undefined'!=typeof DataView&&(z.working?z(n):n instanceof DataView)}function J(n){return'[object SharedArrayBuffer]'===l(n)}function K(n){return'undefined'!=typeof SharedArrayBuffer&&(J.working?J(n):n instanceof SharedArrayBuffer)}function L(n){return I(n,j)}function Q(n){return I(n,w)}function R(n){return I(n,S)}function X(n){return u&&I(n,B)}function Y(n){return c&&I(n,k)}e.isArgumentsObject=t,e.isGeneratorFunction=o,e.isPromise=function(n){return'undefined'!=typeof Promise&&n instanceof Promise||null!==n&&'object'==typeof n&&'function'==typeof n.then&&'function'==typeof n.catch},e.isArrayBufferView=function(n){return s&&ArrayBuffer.isView?ArrayBuffer.isView(n):O(n)||H(n)},e.isTypedArray=O,e.isUint8Array=M,e.isUint8ClampedArray=U,e.isUint16Array=v,e.isUint32Array=W,e.isInt8Array=h,e.isInt16Array=F,e.isInt32Array=V,e.isFloat32Array=P,e.isFloat64Array=D,e.isBigInt64Array=T,e.isBigUint64Array=C,x.working='undefined'!=typeof Map&&x(new Map),e.isMap=function(n){return'undefined'!=typeof Map&&(x.working?x(n):n instanceof Map)},E.working='undefined'!=typeof Set&&E(new Set),e.isSet=function(n){return'undefined'!=typeof Set&&(E.working?E(n):n instanceof Set)},G.working='undefined'!=typeof WeakMap&&G(new WeakMap),e.isWeakMap=function(n){return'undefined'!=typeof WeakMap&&(G.working?G(n):n instanceof WeakMap)},N.working='undefined'!=typeof WeakSet&&N(new WeakSet),e.isWeakSet=function(n){return N(n)},_.working='undefined'!=typeof ArrayBuffer&&_(new ArrayBuffer),e.isArrayBuffer=q,z.working='undefined'!=typeof ArrayBuffer&&'undefined'!=typeof DataView&&z(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=H,J.working='undefined'!=typeof SharedArrayBuffer&&J(new SharedArrayBuffer),e.isSharedArrayBuffer=K,e.isAsyncFunction=function(n){return'[object AsyncFunction]'===l(n)},e.isMapIterator=function(n){return'[object Map Iterator]'===l(n)},e.isSetIterator=function(n){return'[object Set
__d(function(g,r,i,a,m,e,d){m.exports=function(t){return t&&'object'==typeof t&&'function'==typeof t.copy&&'function'==typeof t.fill&&'function'==typeof t.readUInt8}},499,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t='function'==typeof Symbol&&'symbol'==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag"),o=Object.prototype.toString,n=function(n){return!(t&&n&&'object'==typeof n&&("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag")in n)&&'[object Arguments]'===o.call(n)},c=function(t){return!!n(t)||null!==t&&'object'==typeof t&&'number'==typeof t.length&&t.length>=0&&'[object Array]'!==o.call(t)&&'[object Function]'===o.call(t.callee)},l=(function(){return n(arguments)})();n.isLegacyArguments=c,m.exports=l?n:c},500,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=Object.prototype.toString,o=Function.prototype.toString,n=/^\s*(?:function)?\*/,c='function'==typeof Symbol&&'symbol'==typeof("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag"),u=Object.getPrototypeOf,f=(function(){if(!c)return!1;try{return Function('return function*() {}')()}catch(t){}})(),y=f?u(f):{};m.exports=function(f){return'function'==typeof f&&(!!n.test(o.call(f))||(c?u(f)===y:'[object GeneratorFunction]'===t.call(f)))}},501,[]);
__d(function(g,r,i,a,m,e,d){'function'==typeof Object.create?m.exports=function(t,o){t.super_=o,t.prototype=Object.create(o.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:m.exports=function(t,o){t.super_=o;var p=function(){};p.prototype=o.prototype,t.prototype=new p,t.prototype.constructor=t}},502,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n.default}}),r(d[1]);var n=t(r(d[2]));!(function(t){if(void 0===t.$){var n=r(d[3]);n(t),t.$=n}})(g||window||this)},503,[3,504,517,519]);
__d(function(g,r,i,a,m,e,d){r(d[0])},504,[505]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);t.NativeModules.WiFiStats&&((0,s.getJitsiMeetGlobalNS)().getWiFiStats=t.NativeModules.WiFiStats.getWiFiStats)},505,[15,506]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})});var f=r(d[5]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}})})},506,[507,508,510,511,513,514]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.assignIfDefined=function(t,n){var o=Object(t);for(var c in n)if(n.hasOwnProperty(c)){var u=n[c];void 0!==u&&(o[c]=u)}return o},e.copyText=function(t){var n,o=document.createElement('textarea');document.body.appendChild(o),o.value=t,o.select();try{n=document.execCommand('copy')}catch(t){n=!1}return document.body.removeChild(o),n},e.createDeferred=function(){var t={};return t.promise=new Promise(function(n,o){t.resolve=n,t.reject=o}),t},e.escapeRegexp=function(n){if('string'!=typeof n)throw new TypeError('Expected a string');return n.replace(t,'\\$&')},e.getBaseUrl=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,n=t.document.querySelector('base');if(n&&n.href)return n.href;var o=t.location,c=o.protocol,u=o.host;return c+"//"+u},e.getJitsiMeetGlobalNS=function(){window.JitsiMeetJS||(window.JitsiMeetJS={});window.JitsiMeetJS.app||(window.JitsiMeetJS.app={});return window.JitsiMeetJS.app},e.reportError=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'';console.error(n,t),window.onerror&&window.onerror(n,null,null,null,t)};var t=/[|\\{}()[\]^$+*?.-]/g},507,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.doGetJSON=function(o,u){var c=fetch(o).then(function(t){var n=t.json();return t.ok?n:n.then(function(t){return Promise.reject(t)})});if(u)return(0,t.timeoutPromise)(c,n).catch(function(o){return o.status>=400&&o.status<500?Promise.reject(o):(0,t.timeoutPromise)(c,n)});return c};var t=r(d[0]),n=3e3},508,[509]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.timeoutPromise=function(t,n){return new Promise(function(o,u){var c=setTimeout(function(){return u(new Error('timeout'))},n);t.then(function(t){o(t),clearTimeout(c)},function(t){u(t),clearTimeout(c)})})}},509,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.loadScript=function(t){var u,s,c,l,f,p,w,h,x,b,v,_=arguments;return n.default.async(function(k){for(;;)switch(k.prev=k.next){case 0:if(u=_.length>1&&void 0!==_[1]?_[1]:o,s=_.length>2&&void 0!==_[2]&&_[2],c=new URL(t),l=c.hostname,f=c.pathname,p=c.protocol,l&&f&&p){k.next=5;break}throw new Error("unexpected url: "+t);case 5:return w=new AbortController,h=w.signal,x=setTimeout(function(){w.abort()},u),k.next=10,n.default.awrap(fetch(t,{signal:h}));case 10:b=k.sent,clearTimeout(x),k.t0=b.status,k.next=200===k.t0?15:21;break;case 15:return k.next=17,n.default.awrap(b.text());case 17:if(v=k.sent,!s){k.next=20;break}return k.abrupt("return",v);case 20:return k.abrupt("return",eval.call(window,v));case 21:throw new Error("loadScript error: "+b.statusText);case 22:case"end":return k.stop()}},null,this)};var n=t(r(d[1])),o=5e3},510,[3,270]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.openURLInBrowser=function(n){o.Linking.openURL(n).catch(function(o){t.default.error("An error occurred while trying to open "+n,o)})};var o=r(d[1]),t=n(r(d[2]))},511,[3,15,512]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/util');e.default=t},512,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getBackendSafePath=function(t){if(!t)return t;return t.split('/').map(p).join('/')},e.getBackendSafeRoomName=p,e.getLocationContextRoot=v,e.parseStandardURIString=R,e.parseURIString=function(t){if('string'!=typeof t)return;var n=R(f(t));n.contextRoot=v(n);var o=n.pathname,s=o.lastIndexOf('/'),h=o.substring(s+1)||void 0;if(h){var c=u(h);c!==h&&(h=c,n.pathname=o.substring(0,s+1)+(h||''))}return n.room=h,n},e.safeDecodeURIComponent=function(t){try{return decodeURIComponent(t)}catch(t){}return t},e.toURLString=function(t){var n;switch(typeof t){case'object':t&&(n=t instanceof URL?t.href:I(t));break;case'string':n=String(t)}return n},e.urlObjectToString=I,e.addHashParamsToURL=function(t){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},h=(0,o.parseURLParams)(t),c=l((0,n.default)({},h,s));c.length&&(t.hash="#"+c.join('&'));return t},e.getDecodedURI=function(t){return decodeURI(t.replace(/^https?:\/\//i,''))},e.URI_PROTOCOL_PATTERN=e.APP_LINK_SCHEME=void 0;var n=t(r(d[1])),o=r(d[2]),s=r(d[3]);e.APP_LINK_SCHEME='org.jitsi.meet:';var h='[\\:\\?#\\[\\]@!$&\'()*+,;=></"]',c='^([a-z][a-z0-9\\.\\+-]*:)';function u(t){return t?t.replace(new RegExp(h,'g'),''):t}function f(t){var n=new RegExp("^([a-z][a-z0-9\\.\\+-]*:)+",'gi'),o=n.exec(t);if(o){var s=o[o.length-1].toLowerCase();'http:'!==s&&'https:'!==s&&(s='https:'),(t=t.substring(n.lastIndex)).startsWith('//')&&(t=s+t)}return t}function p(t){if(!t)return t;try{t=decodeURIComponent(t)}catch(t){}return t=(t=(0,s.normalizeNFKC)(t)).toLowerCase(),(t=encodeURIComponent(t)).toLowerCase()}function v(t){var n=t.pathname,o=n.lastIndexOf('/');return-1===o?'/':n.substring(0,o+1)}function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];for(var o in t)try{n.push(o+"="+encodeURIComponent(JSON.stringify(t[o])))}catch(t){console.warn("Error encoding "+o+": "+t)}return n}function R(t){var n,o,s,h={toString:x};if(t=t.replace(/\s/g,''),(o=(n=new RegExp(c,'gi')).exec(t))&&(h.protocol=o[1].toLowerCase(),t=t.substring(n.lastIndex)),o=(n=new RegExp("^(//[^/?#]+)",'gi')).exec(t)){var u=o[1].substring(2);t=t.substring(n.lastIndex);var f=u.indexOf('@');-1!==f&&(u=u.substring(f+1)),h.host=u;var p=u.lastIndexOf(':');-1!==p&&(h.port=u.substring(p+1),u=u.substring(0,p)),h.hostname=u}if((o=(n=new RegExp("^([^?#]*)",'gi')).exec(t))&&(s=o[1],t=t.substring(n.lastIndex)),s?s.startsWith('/')||(s="/"+s):s='/',h.pathname=s,t.startsWith('?')){var v=t.indexOf('#',1);-1===v&&(v=t.length),h.search=t.substring(0,v),t=t.substring(v)}else h.search='';return h.hash=t.startsWith('#')?t:'',h}function x(t){var n=t||this,o=n.hash,s=n.host,h=n.pathname,c=n.protocol,u=n.search,f='';return c&&(f+=c),s&&(f+="//"+s),f+=h||'/',u&&(f+=u),o&&(f+=o),f}function I(t){var n=R(f(t.serverURL&&t.room?new URL(t.room,t.serverURL).toString():t.room?t.room:t.url||''));if(!n.protocol){var o=t.protocol||t.scheme;o&&(o.endsWith(':')||(o+=':'),n.protocol=o)}var s=n.pathname;if(!n.host){var h=t.domain||t.host||t.hostname;if(h){var c=R(f("org.jitsi.meet://"+h)),u=c.host,p=c.hostname,v=c.pathname,x=c.port;u&&(n.host=u,n.hostname=p,n.port=x),'/'===s&&'/'!==v&&(s=v)}}var I=t.roomName||t.room;!I||!n.pathname.endsWith('/')&&n.pathname.endsWith("/"+I)||(s.endsWith('/')||(s+='/'),s+=I),n.pathname=s;var O=t.jwt;if(O){var U=n.search;-1===U.indexOf('?jwt=')&&-1===U.indexOf('&jwt=')&&(U.startsWith('?')||(U="?"+U),1===U.length||(U+='&'),U+="jwt="+O,n.search=U)}for(var b=n.hash,w=['config','interfaceConfig','devices','userInfo'],C=0;C<w.length;C++){var L=w[C],S=l(t[L+"Overwrite"]||t[L]||t[L+"Override"]);if(S.length){var j=L+"."+S.join("&"+L+".");b.length?j="&"+j:b='#',b+=j}}return n.hash=b,n.toString()||void 0}e.URI_PROTOCOL_PATTERN=c},513,[3,53,514,515]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.parseURLParams=function(n){var s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:'hash',h='search'===o?n.search:n.hash,l={},v=h&&h.substr(1).split('&')||[];if('hash'===o&&1===v.length){var c=v[0];if(c.startsWith('/')&&1===c.split('&').length)return l}return v.forEach(function(n){var o=n.split('='),h=o[0];if(h){var v;try{if(v=o[1],!s){var c=decodeURIComponent(v).replace(/\\&/,'&');v='undefined'===c?void 0:JSON.parse(c)}}catch(n){return void(0,t.reportError)(n,"Failed to parse URL parameter value: "+String(v))}l[h]=v}}),l};var t=r(d[0])},514,[507]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeNFKC=function(n){return o.nfkc(n)};var o=n(r(d[1]))},515,[2,516]);
__d(function(g,r,i,a,m,e,d){!(function(t){"use strict";for(var n=[null,0,{}],o=10,s=44032,u=4352,f=4449,h=4519,c=21,l=28,p=588,C=function(t,n){this.codepoint=t,this.feature=n},v={},w=[],B=0;B<=255;++B)w[B]=0;var y=[function(t,o,s){return o<60||13311<o&&o<42607?new C(o,n):t(o,s)},function(t,n,s){var u=v[n];return u||(u=t(n,s)).feature&&++w[n>>8&255]>o&&(v[n]=u),u},function(t,n,o){return o?t(n,o):new C(n,null)},function(t,n,o){var v;if(n<u||4371<=n&&n<s||55204<n)return t(n,o);if(u<=n&&n<4371){var w={},B=(n-u)*c;for(v=0;v<c;++v)w[f+v]=s+l*(v+B);return new C(n,[,,w])}var y=n-s,F=y%l,N=[];if(0!==F)N[0]=[s+y-F,h+F];else for(N[0]=[u+Math.floor(y/p),f+Math.floor(y%p/l)],N[2]={},v=1;v<l;++v)N[2][h+v]=n+v;return new C(n,N)},function(t,o,s){var u=65280&o,f=(C.udata[u]||{})[o];return new C(o,f||n)}];C.fromCharCode=y.reduceRight(function(t,n){return function(o,s){return n(t,o,s)}},null),C.isHighSurrogate=function(t){return t>=55296&&t<=56319},C.isLowSurrogate=function(t){return t>=56320&&t<=57343},C.prototype.prepFeature=function(){this.feature||(this.feature=C.fromCharCode(this.codepoint,!0).feature)},C.prototype.toString=function(){if(this.codepoint<65536)return String.fromCharCode(this.codepoint);var t=this.codepoint-65536;return String.fromCharCode(Math.floor(t/1024)+55296,t%1024+56320)},C.prototype.getDecomp=function(){return this.prepFeature(),this.feature[0]||null},C.prototype.isCompatibility=function(){return this.prepFeature(),!!this.feature[1]&&256&this.feature[1]},C.prototype.isExclude=function(){return this.prepFeature(),!!this.feature[1]&&512&this.feature[1]},C.prototype.getCanonicalClass=function(){return this.prepFeature(),this.feature[1]?255&this.feature[1]:0},C.prototype.getComposite=function(t){if(this.prepFeature(),!this.feature[2])return null;var n=this.feature[2][t.codepoint];return n?C.fromCharCode(n):null};var F=function(t){this.str=t,this.cursor=0};F.prototype.next=function(){if(this.str&&this.cursor<this.str.length){var t,n=this.str.charCodeAt(this.cursor++);return C.isHighSurrogate(n)&&this.cursor<this.str.length&&C.isLowSurrogate(t=this.str.charCodeAt(this.cursor))&&(n=1024*(n-55296)+(t-56320)+65536,++this.cursor),C.fromCharCode(n)}return this.str=null,null};var N=function(t,n){this.it=t,this.canonical=n,this.resBuf=[]};N.prototype.next=function(){if(0===this.resBuf.length){var t=this.it.next();if(!t)return null;this.resBuf=(function t(n,o){var s=o.getDecomp();if(!s||n&&o.isCompatibility())return[o];for(var u=[],f=0;f<s.length;++f){var h=t(n,C.fromCharCode(s[f]));u=u.concat(h)}return u})(this.canonical,t)}return this.resBuf.shift()};var b=function(t){this.it=t,this.resBuf=[]};b.prototype.next=function(){var t;if(0===this.resBuf.length)do{var n=this.it.next();if(!n)break;t=n.getCanonicalClass();var o=this.resBuf.length;if(0!==t)for(;o>0;--o){if(this.resBuf[o-1].getCanonicalClass()<=t)break}this.resBuf.splice(o,0,n)}while(0!==t);return this.resBuf.shift()};var S=function(t){this.it=t,this.procBuf=[],this.resBuf=[],this.lastClass=null};S.prototype.next=function(){for(;0===this.resBuf.length;){var t=this.it.next();if(!t){this.resBuf=this.procBuf,this.procBuf=[];break}if(0===this.procBuf.length)this.lastClass=t.getCanonicalClass(),this.procBuf.push(t);else{var n=this.procBuf[0].getComposite(t),o=t.getCanonicalClass();n&&(this.lastClass<o||0===this.lastClass)?this.procBuf[0]=n:(0===o&&(this.resBuf=this.procBuf,this.procBuf=[]),this.lastClass=o,this.procBuf.push(t))}}return this.resBuf.shift()};var x=function(t,n){switch(t){case"NFD":return new b(new N(new F(n),!0));case"NFKD":return new b(new N(new F(n),!1));case"NFC":return new S(new b(new N(new F(n),!0)));case"NFKC":return new S(new b(new N(new F(n),!1)))}throw t+" is invalid"},D=function(t,n){for(var o,s=x(t,n),u="";o=s.next();)u+=o.toString();return u};C.udata={0:{60:[,,{824:8814}],61:[,,{824:8800}],62:[,,{824:8815}],65:[,,{768:192,769:193,770:194,771:195,772:256,774:258,775:550,776:196,777:7842,778:197,780:461,783:512,785:514,803:7840,805:7680,808:260}],66:[,,{775:7682,803:7684,817:7686}],67:[,,{769:262,770:264,775:266,780:268,807:199}],68:[,,{775:7690,780:
__d(function(global,_$$_REQUIRE,_$$_IMPORT_DEFAULT,_$$_IMPORT_ALL,module,exports,_dependencyMap){var _regeneratorRuntime=_$$_REQUIRE(_dependencyMap[0]),_readOnlyError=_$$_REQUIRE(_dependencyMap[1]),_extends=_$$_REQUIRE(_dependencyMap[2]),_get=_$$_REQUIRE(_dependencyMap[3]),_slicedToArray=_$$_REQUIRE(_dependencyMap[4]),_defineProperty=_$$_REQUIRE(_dependencyMap[5]),_assertThisInitialized=_$$_REQUIRE(_dependencyMap[6]),_classCallCheck=_$$_REQUIRE(_dependencyMap[7]),_createClass=_$$_REQUIRE(_dependencyMap[8]),_possibleConstructorReturn=_$$_REQUIRE(_dependencyMap[9]),_getPrototypeOf=_$$_REQUIRE(_dependencyMap[10]),_inherits=_$$_REQUIRE(_dependencyMap[11]),_toConsumableArray=_$$_REQUIRE(_dependencyMap[12]),e,t;e=window,t=function(){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&("function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag")&&Object.defineProperty(e,"function"==typeof Symbol?Symbol.toStringTag:"@@toStringTag",{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=142)})([function(e,t){e.exports={ADD_ICE_CANDIDATE_FAILED:"xmpp.add_ice_candidate_failed",AUDIO_MUTED_BY_FOCUS:"xmpp.audio_muted_by_focus",AUTHENTICATION_REQUIRED:"xmpp.authentication_required",BRIDGE_DOWN:"xmpp.bridge_down",CALL_ACCEPTED:"xmpp.callaccepted.jingle",CALL_INCOMING:"xmpp.callincoming.jingle",CALL_ENDED:"xmpp.callended.jingle",CHAT_ERROR_RECEIVED:"xmpp.chat_error_received",CONFERENCE_PROPERTIES_CHANGED:"xmpp.conference_properties_changed",CONNECTION_ESTABLISHED:"xmpp.connection.connected",CONNECTION_FAILED:"xmpp.connection.failed",CONNECTION_INTERRUPTED:"xmpp.connection.interrupted",CONNECTION_RESTORED:"xmpp.connection.restored",CONNECTION_ICE_FAILED:"xmpp.connection.ice.failed",CONNECTION_STATUS_CHANGED:"xmpp.connection.status.changed",DISPLAY_NAME_CHANGED:"xmpp.display_name_changed",EMUC_ROOM_ADDED:"xmpp.emuc_room_added",EMUC_ROOM_REMOVED:"xmpp.emuc_room_removed",ETHERPAD:"xmpp.etherpad",FOCUS_DISCONNECTED:"xmpp.focus_disconnected",FOCUS_LEFT:"xmpp.focus_left",GRACEFUL_SHUTDOWN:"xmpp.graceful_shutdown",ICE_RESTARTING:"rtc.ice_restarting",ICE_RESTART_SUCCESS:"rtc.ice_restart_success",KICKED:"xmpp.kicked",LOCAL_ROLE_CHANGED:"xmpp.localrole_changed",MEETING_ID_SET:"xmpp.meeting_id_set",MESSAGE_RECEIVED:"xmpp.message_received",INVITE_MESSAGE_RECEIVED:"xmpp.invite_message_received",PRIVATE_MESSAGE_RECEIVED:"xmpp.private_message_received",MUC_MEMBER_BOT_TYPE_CHANGED:"xmpp.muc_member_bot_type_changed",MUC_DESTROYED:"xmpp.muc_destroyed",MUC_JOINED:"xmpp.muc_joined",MUC_MEMBER_JOINED:"xmpp.muc_member_joined",MUC_MEMBER_LEFT:"xmpp.muc_member_left",MUC_LOBBY_MEMBER_JOINED:"xmpp.muc_lobby_member_joined",MUC_LOBBY_MEMBER_UPDATED:"xmpp.muc_lobby_member_updated",MUC_LOBBY_MEMBER_LEFT:"xmpp.muc_lobby_member_left",MUC_DENIED_ACCESS:"xmpp.muc_denied access",MUC_LEFT:"xmpp.muc_left",MUC_ROLE_CHANGED:"xmpp.muc_role_changed",MUC_LOCK_CHANGED:"xmpp.muc_lock_changed",MUC_MEMBERS_ONLY_CHANGED:"xmpp.muc_members_only_changed",PARTICIPANT_AUDIO_MUTED:"xmpp.audio_muted",PARTICIPANT_VIDEO_MUTED:"xmpp.video_muted",PARTICIPANT_VIDEO_TYPE_CHANGED:"xmpp.video_type",PARTCIPANT_FEATURES_CHANGED:"xmpp.partcipant_features_changed",PASSWORD_REQUIRED:"xmpp.password_required",PHONE_NUMBER_CHANGED:"conference.phoneNumberChanged",PRESENCE_RECEIVED:"xmpp.presence_received",PRESENCE_STATUS:"xmpp.presence_status",PROMPT_FOR_LOGIN:"xmpp.prom
__d(function(g,r,i,a,m,e,d){m.exports=function(n){throw new Error("\""+n+"\" is read-only")}},518,[]);
__d(function(e,t,n,r,i,o,a){!(function(e,t){"use strict";"object"==typeof i&&"object"==typeof i.exports?i.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)})("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=Object.getPrototypeOf,i=n.slice,o=n.flat?function(e){return n.flat.call(e)}:function(e){return n.concat.apply([],e)},a=n.push,s=n.indexOf,u={},l=u.toString,c=u.hasOwnProperty,f=c.toString,p=f.call(Object),d={},h=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},g=function(e){return null!=e&&e===e.window},v=e.document,y={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||v).createElement("script");if(o.text=e,t)for(r in y)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?u[l.call(e)]||"object":typeof e}var b=function e(t,n){return new e.fn.init(t,n)};function w(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!h(e)&&!g(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}b.fn=b.prototype={jquery:"3.5.1",constructor:b,length:0,toArray:function(){return i.call(this)},get:function(e){return null==e?i.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return b.each(this,e)},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(i.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(b.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(b.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:a,sort:n.sort,splice:n.splice},b.extend=b.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||h(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(b.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||b.isPlainObject(n)?n:{},i=!1,a[t]=b.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},b.extend({expando:"jQuery"+("3.5.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==l.call(e))&&(!(t=r(e))||"function"==typeof(n=c.call(t,"constructor")&&t.constructor)&&f.call(n)===p)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(w(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(w(Object(e))?b.merge(n,"string"==typeof e?[e]:e):a.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:s.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,a=0,s=[];if(w(e))for(r=e.length;a<r;a++)null!=(i=t(e[a],a,n))&&s.push(i);else for(a in e)null!=(i=t(e[a],a,n))&&s.push(i);return o(s)},guid:1,support:d}),"function"==typeof Symbol&&(b.fn["function"==typeof Symbol?Symbol.iterator:"@@iterator"]=n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]),b.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){u["[object "+t+"]"]=t.toLowerCase()});var T=(function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,v,y,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ie(),S=ie(),A=ie(),k=ie(),N=function(e,t){return e===t&&(f=!0),0},D={}.hasOw
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=r(d[4]),o=new((function(){function t(){(0,u.default)(this,t),this._elements={}}return(0,l.default)(t,[{key:"combineReducers",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,f.combineReducers)((0,n.default)({},this._elements,t))}},{key:"register",value:function(t,n){this._elements[t]=n}}]),t})());e.default=o},520,[3,53,4,5,465]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),n=t(r(d[2])),o=r(d[3]),l=t(r(d[4])),u=new((function(){function t(){(0,s.default)(this,t),this._selectorListeners=new Set}return(0,n.default)(t,[{key:"_listener",value:function(t){var s=t.prevSelections,n=t.store,u=this._selectorListeners,c=Array.isArray(u),f=0;for(u=c?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(c){if(f>=u.length)break;v=u[f++]}else{if((f=u.next()).done)break;v=f.value}var b=v,y=s.get(b);try{var _,h=b.selector(n.getState(),y),p=null==b?void 0:null==(_=b.options)?void 0:_.deepEquals;(p&&!(0,o.equals)(y,h)||!p&&y!==h)&&(s.set(b,h),b.listener(h,n,y))}catch(t){l.default.error(t)}}}},{key:"register",value:function(t,s,n){this._selectorListeners.add({listener:s,selector:t,options:n})}},{key:"subscribe",value:function(t){this._selectorListeners.size&&t.subscribe(this._listener.bind(this,{prevSelections:new Map,store:t}))}}]),t})());e.default=u},521,[3,4,5,444,494]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},522,[523,527]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},523,[524]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},524,[525,526]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.BoxModel=void 0;e.BoxModel={margin:10,padding:10}},525,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPalette=void 0;var l={appBackground:"#111111",black:"#111111",blackBlue:'rgb(0, 3, 6)',blue:'#17A0DB',blueHighlight:'#1081b2',buttonUnderlay:'#495258',darkGrey:'#555555',green:'#40b183',lightGrey:'#AAAAAA',overflowMenuItemUnderlay:'#EEEEEE',red:'#D00000',transparent:'rgba(0, 0, 0, 0)',warning:'rgb(215, 121, 118)',white:'#FFFFFF',G400:'#00875A',N500:'#42526E',R400:'#DE350B',Y200:'#FFC400'};e.ColorPalette=l},526,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={getFixedPlatformStyle:!0};e.getFixedPlatformStyle=function(t){return t};var n=r(d[0]);Object.keys(n).forEach(function(o){"default"!==o&&"__esModule"!==o&&(Object.prototype.hasOwnProperty.call(t,o)||Object.defineProperty(e,o,{enumerable:!0,get:function(){return n[o]}}))})},527,[528]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.styleTypeToObject=function t(n){if(!n)return{};if(Array.isArray(n)){for(var u={},f=n,s=Array.isArray(f),p=0,f=s?f:f["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(p>=f.length)break;l=f[p++]}else{if((p=f.next()).done)break;l=p.value}var c=l;(0,o.default)(u,t(c))}return u}return n},e.combineStyles=function(t,n){var o=[];t&&(Array.isArray(t)?o.push.apply(o,(0,u.default)(t)):o.push(t));n&&(Array.isArray(n)?o.push.apply(o,(0,u.default)(n)):o.push(n));return o},e.createStyleSheet=function(t){for(var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o={},f=Object.keys(t),s=0;s<f.length;s++){var p=f[s];o[p]=I((0,n.default)({},t[p],u[p]))}return o},e.fixAndroidViewClipping=function(t){'android'===f.default.OS&&(t.borderColor=s.ColorPalette.appBackground,t.borderWidth=1);return t},e.getRGBAFormat=function(t,n){var u=t.match(p);if(u)return"#"+u[1]+u[2]+u[3]+y(n);if(u=t.match(l))return"#"+u[1]+u[1]+u[2]+u[2]+u[3]+u[3]+y(n);if(u=t.match(c))return"rgba("+u[1]+", "+u[2]+", "+u[3]+", "+n+")";return t},e.isDarkColor=function(t){var n=A(t);return.2126*v(n.r)+.7152*v(n.g)+.0722*v(n.b)<=.179};var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),s=r(d[5]),p=/^#([0-9A-F]{2,2})([0-9A-F]{2,2})([0-9A-F]{2,2})$/i,l=/^#([0-9A-F]{1,1})([0-9A-F]{1,1})([0-9A-F]{1,1})$/i,c=/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/i,b=/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*([0-9.]+)\)$/i,h=['height','width'];function y(t){return Number(Math.round(255*t)).toString(16).padStart(2,'0')}function v(t){return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function A(t){var n=t.match(p);return n?{r:parseInt(n[1],16)/255,g:parseInt(n[2],16)/255,b:parseInt(n[3],16)/255}:(n=t.match(l))?{r:parseInt(""+n[1]+n[1],16)/255,g:parseInt(""+n[2]+n[2],16)/255,b:parseInt(""+n[3]+n[3],16)/255}:(n=t.match(c)||t.match(b))?{r:parseInt(n[1],10)/255,g:parseInt(n[2],10)/255,b:parseInt(n[3],10)/255}:{r:0,g:0,b:0}}function I(t){for(var n=0;n<h.length;n++){var u=h[n],o=t[u],f=typeof o;if('undefined'!==f&&'number'!==f){var s=Number(o);Number.isNaN(s)?delete t[u]:t[u]=s}}return t}},528,[3,53,31,24,529,523]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]).Platform;e.default=t},529,[15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),o={_defaultTheme:{background:'rgb(255, 255, 255)',errorText:t.ColorPalette.red,icon:'rgb(28, 32, 37)',text:'rgb(28, 32, 37)'},Chat:{displayName:'rgb(94, 109, 121)',localMsgBackground:'rgb(215, 230, 249)',privateMsgBackground:'rgb(250, 219, 219)',privateMsgNotice:'rgb(186, 39, 58)',remoteMsgBackground:'rgb(241, 242, 246)',replyBorder:'rgb(219, 197, 200)',replyIcon:'rgb(94, 109, 121)'},Conference:{inviteButtonBackground:'rgb(0, 119, 225)',onVideoText:'white'},Dialog:{border:'rgba(0, 3, 6, 0.6)',buttonBackground:t.ColorPalette.blue,buttonLabel:t.ColorPalette.white},Header:{background:t.ColorPalette.blue,icon:t.ColorPalette.white,statusBar:t.ColorPalette.blueHighlight,statusBarContent:t.ColorPalette.white,text:t.ColorPalette.white},Modal:{},LargeVideo:{background:'rgb(42, 58, 75)'},LoadConfigOverlay:{background:'rgb(249, 249, 249)'},Thumbnail:{activeParticipantHighlight:'rgb(81, 214, 170)',activeParticipantTint:'rgba(49, 183, 106, 0.3)',background:'rgb(94, 109, 122)'},Toolbox:{button:'rgb(255, 255, 255)',buttonToggled:'rgb(38, 58, 76)',buttonToggledBorder:(0,t.getRGBAFormat)('#a4b8d1',.6),hangup:'rgb(225, 45, 45)'}};e.default=o},530,[522]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},531,[532,533,535,534]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.hideDialog=t,e.openDialog=u,e.toggleDialog=function(n,c){return function(p,l){(0,o.isDialogOpen)(l,n)?p(t(n)):p(u(n,c))}};var n=r(d[0]),o=r(d[1]);function t(o){return{type:n.HIDE_DIALOG,component:o}}function u(o,t,u){return{rawDialog:u,type:n.OPEN_DIALOG,component:o,componentProps:t}}},532,[533,534]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.OPEN_DIALOG=e.HIDE_DIALOG=void 0;e.HIDE_DIALOG='HIDE_DIALOG';e.OPEN_DIALOG='OPEN_DIALOG'},533,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isAnyDialogOpen=function(t){return Boolean((0,o.toState)(t)['features/base/dialog'].component)},e.isDialogOpen=function(t,n){return(0,o.toState)(t)['features/base/dialog'].component===n},e._abstractMapStateToProps=function(o){return{_dialogStyles:t.ColorSchemeRegistry.get(o,'Dialog')}};var t=r(d[0]),o=r(d[1])},534,[438,443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={DialogContent:!0};Object.defineProperty(e,"DialogContent",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=t(r(d[2]))},535,[3,536,1079]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},536,[537]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={BottomSheet:!0,ConfirmDialog:!0,CustomDialog:!0,DialogContainer:!0,AlertDialog:!0,InputDialog:!0,CustomSubmitDialog:!0};Object.defineProperty(e,"BottomSheet",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"ConfirmDialog",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"CustomDialog",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"DialogContainer",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"AlertDialog",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"InputDialog",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"CustomSubmitDialog",{enumerable:!0,get:function(){return p.default}});var o=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),c=t(r(d[5])),b=t(r(d[6])),p=t(r(d[7])),y=r(d[8]);Object.keys(y).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return y[t]}}))})},537,[3,538,1069,1073,1074,1076,1077,1078,1067]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),s=n(r(d[4])),u=n(r(d[5])),h=n(r(d[6])),c=n(r(d[7])),f=n(r(d[8])),p=t(r(d[9])),S=r(d[10]),v=r(d[11]),y=r(d[12]),b=r(d[13]),w=(r(d[14]),r(d[15])),R=(function(t){function n(t){var o;return(0,l.default)(this,n),(o=(0,u.default)(this,(0,h.default)(n).call(this,t))).panResponder=S.PanResponder.create({onStartShouldSetPanResponder:o._onShouldSetResponder.bind((0,f.default)((0,f.default)(o))),onMoveShouldSetPanResponder:o._onShouldSetResponder.bind((0,f.default)((0,f.default)(o))),onPanResponderRelease:o._onGestureEnd.bind((0,f.default)((0,f.default)(o)))}),o}return(0,c.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=this.props,n=t._styles,l=t.renderHeader;return p.default.createElement(y.SlidingView,{accessibilityRole:"menu",accessibilityViewIsModal:!0,onHide:this.props.onCancel,position:"bottom",show:!0},p.default.createElement(S.View,{pointerEvents:"box-none",style:w.bottomSheetStyles.sheetContainer},p.default.createElement(S.View,{pointerEvents:"box-none",style:w.bottomSheetStyles.sheetAreaCover}),l&&l(),p.default.createElement(S.SafeAreaView,(0,o.default)({style:[w.bottomSheetStyles.sheetItemContainer,n.sheet]},this.panResponder.panHandlers),p.default.createElement(S.ScrollView,{bounces:!1,showsVerticalScrollIndicator:!1,style:w.bottomSheetStyles.scrollView},this.props.children))))}},{key:"_onGestureEnd",value:function(t,n){if(Math.abs(n.vy)>Math.abs(n.vx)&&Math.abs(n.vy)>.2){var o=n.vy>0?'down':'up',l=this.props,s=l.onCancel,u=l.onSwipe,h=!1;u&&(h=u(o)),'down'!==o||h||s&&s()}}},{key:"_onShouldSetResponder",value:function(t,n){return 1===t.nativeEvent.touches.length&&Math.abs(n.dx)>5&&Math.abs(n.dy)>5}}]),n})(p.PureComponent);var _=(0,b.connect)(function(t){return{_styles:v.ColorSchemeRegistry.get(t,'BottomSheet')}})(R);e.default=_},538,[2,3,24,4,5,6,9,10,8,59,15,438,539,443,522,1067]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={Platform:!0};Object.defineProperty(e,"Platform",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=r(d[2]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=t(r(d[3])),f=r(d[4]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}}))})},539,[3,540,1065,529,1066]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={AbstractPage:!0,NavigateSectionList:!0};Object.defineProperty(e,"AbstractPage",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"NavigateSectionList",{enumerable:!0,get:function(){return u.default}});var c=r(d[1]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var o=t(r(d[2])),u=t(r(d[3]))},540,[3,541,1063,1064]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},541,[542]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AvatarListItem",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"BackButton",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"BaseIndicator",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"Button",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"Container",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"ForwardButton",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"Header",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"HeaderLabel",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"HeaderWithNavigation",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"Image",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(e,"Link",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"Linkify",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(e,"LoadingIndicator",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"Modal",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(e,"NavigateSectionListEmptyComponent",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,"NavigateSectionListItem",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(e,"NavigateSectionListSectionHeader",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(e,"PagedList",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(e,"Pressable",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(e,"SectionList",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(e,"SlidingView",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(e,"Switch",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(e,"Text",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(e,"TintedView",{enumerable:!0,get:function(){return h.default}});var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=t(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),b=t(r(d[7])),p=t(r(d[8])),y=t(r(d[9])),P=t(r(d[10])),j=t(r(d[11])),O=t(r(d[12])),s=t(r(d[13])),L=t(r(d[14])),v=t(r(d[15])),S=t(r(d[16])),B=t(r(d[17])),I=t(r(d[18])),w=t(r(d[19])),H=t(r(d[20])),N=t(r(d[21])),_=t(r(d[22])),k=t(r(d[23])),h=t(r(d[24]))},542,[3,543,1018,1019,1021,553,1022,1023,1025,1026,1027,1028,1030,1044,1045,1046,1047,1052,1053,1054,1055,1056,1061,1029,1062]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),s=l(r(d[4])),f=l(r(d[5])),o=l(r(d[6])),c=l(r(d[7])),p=t(r(d[8])),v=r(d[9]),y=r(d[10]),h=(r(d[11]),l(r(d[12]))),I=t(r(d[13])),_=(function(t){function l(t){var u;return(0,n.default)(this,l),(u=(0,s.default)(this,(0,f.default)(l).call(this,t)))._renderItemLine=u._renderItemLine.bind((0,c.default)((0,c.default)(u))),u}return(0,o.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){var t=this.props,l=t.avatarOnly,n=t.avatarSize,u=void 0===n?I.AVATAR_SIZE:n,s=t.avatarStatus,f=t.avatarStyle,o=this.props.item,c=o.avatar,_=o.colorBase,L=o.lines,E=o.title;return p.default.createElement(h.default,{onClick:this.props.onPress,style:I.default.listItem,underlayColor:I.UNDERLAY_COLOR},p.default.createElement(y.Avatar,{colorBase:_,displayName:E,size:u,status:s,style:f,url:c}),l||p.default.createElement(h.default,{style:I.default.listItemDetails},p.default.createElement(v.Text,{numberOfLines:1,style:[I.default.listItemText,I.default.listItemTitle,this.props.titleStyle]},E),this._renderItemLines(L)),this.props.children)}},{key:"_renderItemLine",value:function(t,l){return t?p.default.createElement(v.Text,{key:l,numberOfLines:1,style:[I.default.listItemText,this.props.linesStyle]},t):null}},{key:"_renderItemLines",value:function(t){return t&&t.length?t.map(this._renderItemLine):null}}]),l})(p.Component);e.default=_},543,[2,3,4,5,6,9,10,8,59,15,544,522,553,1017]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},544,[545,1016]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={Avatar:!0};Object.defineProperty(e,"Avatar",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=t(r(d[2]))},545,[3,546,703]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"StatelessAvatar",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},546,[3,547]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),c=r(d[7]),v=r(d[8]),y=t(r(d[9])),h=t(r(d[10])),p=r(d[11]),_=(function(t){function y(){return(0,l.default)(this,y),(0,u.default)(this,(0,s.default)(y).apply(this,arguments))}return(0,o.default)(y,t),(0,n.default)(y,[{key:"render",value:function(){var t,l=this.props,n=l.initials,u=l.size,s=l.style,o=l.url;return t=this._isIcon(o)?this._renderIconAvatar(o):o?this._renderURLAvatar():n?this._renderInitialsAvatar():this._renderDefaultAvatar(),f.default.createElement(c.View,null,f.default.createElement(c.View,{style:[h.default.avatarContainer(u),s]},t),this._renderAvatarStatus())}},{key:"_renderAvatarStatus",value:function(){var t=this.props,l=t.size,n=t.status;return n?f.default.createElement(c.View,{style:h.default.badgeContainer},f.default.createElement(c.View,{style:h.default.badge(l,n)})):null}},{key:"_renderDefaultAvatar",value:function(){var t=this.props.size;return f.default.createElement(c.Image,{source:p,style:[h.default.avatarContent(t),h.default.staticAvatar]})}},{key:"_renderIconAvatar",value:function(t){var l=this.props,n=l.color,u=l.size;return f.default.createElement(c.View,{style:[h.default.initialsContainer,{backgroundColor:n}]},f.default.createElement(v.Icon,{src:t,style:h.default.initialsText(u)}))}},{key:"_renderInitialsAvatar",value:function(){var t=this.props,l=t.color,n=t.initials,u=t.size;return f.default.createElement(c.View,{style:[h.default.initialsContainer,{backgroundColor:l}]},f.default.createElement(c.Text,{style:h.default.initialsText(u)}," ",n," "))}},{key:"_renderURLAvatar",value:function(){var t=this.props,l=t.onAvatarLoadError,n=t.size,u=t.url;return f.default.createElement(c.Image,{defaultSource:p,onError:l,resizeMode:"cover",source:{uri:u},style:h.default.avatarContent(n)})}}]),y})(y.default);e.default=_},547,[3,4,5,6,9,10,59,15,548,700,701,702]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},548,[549,555]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Icon",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},549,[3,550]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=f,e.DEFAULT_SIZE=e.DEFAULT_COLOR=void 0;var l=t(r(d[1])),o=t(r(d[2])),n=r(d[3]),c=r(d[4]),u='ReactNative'===navigator.product?'white':void 0;e.DEFAULT_COLOR=u;var s='ReactNative'===navigator.product?36:24;function f(t){var f,v,E,_,L,O=t.className,T=t.color,p=t.id,y=t.onClick,C=t.size,N=t.src,h=t.style,A=(0,c.styleTypeToObject)(null!=(f=h)?f:{}),D=A.color,F=A.fontSize,R=(0,l.default)(A,["color","fontSize"]),S=null!=(v=null!=(E=T)?E:D)?v:u,U=null!=(_=null!=(L=C)?L:F)?_:s;return o.default.createElement(n.Container,{className:"jitsi-icon "+O,onClick:y,style:R},o.default.createElement(N,{fill:S,height:U,id:p,width:U}))}e.DEFAULT_SIZE=s,f.defaultProps={className:''}},550,[3,55,59,551,522]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},551,[552]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Container",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},552,[3,553]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[1])),o=l(r(d[2])),u=l(r(d[3])),n=l(r(d[4])),s=l(r(d[5])),c=l(r(d[6])),f=l(r(d[7])),b=l(r(d[8])),h=l(r(d[9])),v=r(d[10]),y=(function(l){function y(){return(0,u.default)(this,y),(0,s.default)(this,(0,c.default)(y).apply(this,arguments))}return(0,b.default)(y,l),(0,n.default)(y,[{key:"render",value:function(){var l=this.props,u=l.accessibilityLabel,n=l.accessible,s=l.onClick,b=l.onLongPress,p=l.touchFeedback,k=void 0===p?Boolean(s||b):p,L=l.underlayColor,C=l.visible,P=void 0===C||C,_=(0,o.default)(l,["accessibilityLabel","accessible","onClick","onLongPress","touchFeedback","underlayColor","visible"]);if(!P)return null;var E=s||b||k,F=(0,f.default)((0,c.default)(y.prototype),"_render",this).call(this,v.View,(0,t.default)({pointerEvents:E?'auto':'box-none'},_));if(F&&E){var T={accessibilityLabel:u,accessible:n,onLongPress:b,onPress:s};F=k?h.default.createElement(v.TouchableHighlight,(0,t.default)({},T,{underlayColor:L}),F):h.default.createElement(v.TouchableWithoutFeedback,T,F)}return F}}]),y})(l(r(d[11])).default);e.default=y},553,[3,53,55,4,5,6,9,46,10,59,15,554]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),c=l(r(d[6])),s=l(r(d[7])),h=l(r(d[8])),v=t(r(d[9])),y=r(d[10]),p=(function(t){function l(){return(0,f.default)(this,l),(0,c.default)(this,(0,s.default)(l).apply(this,arguments))}return(0,h.default)(l,t),(0,o.default)(l,[{key:"_render",value:function(t,l){var f=l||this.props,o=f.children,c=f.style,s=(f.touchFeedback,f.visible,(0,n.default)(f,["children","style","touchFeedback","visible"])),h=(0,y.getFixedPlatformStyle)(c);return v.default.createElement(t,(0,u.default)({style:h},s),o)}}]),l})(v.Component);e.default=p},554,[2,3,53,55,4,5,6,9,10,59,522]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"IconAdd",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"IconAddPeople",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"IconArrowBack",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"IconArrowDown",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"IconArrowDownSmall",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"IconArrowLeft",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"IconAudioOnly",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"IconAudioOnlyOff",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"IconAudioRoute",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"IconDeviceSpeaker",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"IconVolume",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"IconBlurBackground",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(e,"IconCamera",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(e,"IconCameraDisabled",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(e,"IconCancelSelection",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"IconChat",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(e,"IconChatSend",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(e,"IconChatUnread",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"IconCheck",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,"IconClose",{enumerable:!0,get:function(){return D.default}}),Object.defineProperty(e,"IconCloseX",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"IconClosedCaption",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(e,"IconCodeBlock",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(e,"IconConnectionActive",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(e,"IconConnectionInactive",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(e,"IconCopy",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(e,"IconCrown",{enumerable:!0,get:function(){return R.default}}),Object.defineProperty(e,"IconDeviceBluetooth",{enumerable:!0,get:function(){return V.default}}),Object.defineProperty(e,"IconDeviceEarpiece",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(e,"IconDeviceHeadphone",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(e,"IconDominantSpeaker",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(e,"IconDownload",{enumerable:!0,get:function(){return Q.default}}),Object.defineProperty(e,"IconDragHandle",{enumerable:!0,get:function(){return U.default}}),Object.defineProperty(e,"IconE2EE",{enumerable:!0,get:function(){return W.default}}),Object.defineProperty(e,"IconEdit",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(e,"IconEmail",{enumerable:!0,get:function(){return x.default}}),Object.defineProperty(e,"IconEventNote",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(e,"IconExclamation",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(e,"IconExclamationSolid",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(e,"IconExitFullScreen",{enumerable:!0,get:function(){return G.default}}),Object.defineProperty(e,"IconFeedback",{enumerable:!0,get:function(){return J.default}}),Object.defineProperty(e,"IconFullScreen",{enumerable:!0,get:function(){return K.default}}),Object.defineProperty(e,"IconGoogle",{enumerable:!0,get:function(){return X.default}}),Object.defineProperty(e,"IconHangup",{enumerable:!0,get:function(){return Y.default}}),Object.definePr
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=u(r(d[2])),h=u(r(d[3])),l=t(r(d[4])),f=function(t){return h.default.createElement(l.default,(0,v.default)({width:24,height:24,viewBox:"0 0 24 24"},t),h.default.createElement(l.Path,{d:"M18.984 12.984h-6v6h-1.969v-6h-6v-1.969h6v-6h1.969v6h6v1.969z"}))};e.default=f},556,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Rect",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Circle",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"Ellipse",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"Polygon",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"Polyline",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"Line",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"Svg",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"Path",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(e,"G",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(e,"Text",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(e,"TSpan",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(e,"TextPath",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(e,"Use",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(e,"Image",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(e,"Symbol",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"Defs",{enumerable:!0,get:function(){return U.default}}),Object.defineProperty(e,"LinearGradient",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(e,"RadialGradient",{enumerable:!0,get:function(){return X.default}}),Object.defineProperty(e,"Stop",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(e,"ClipPath",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(e,"Pattern",{enumerable:!0,get:function(){return G.default}}),Object.defineProperty(e,"Mask",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return x.parse}}),Object.defineProperty(e,"SvgAst",{enumerable:!0,get:function(){return x.SvgAst}}),Object.defineProperty(e,"SvgFromUri",{enumerable:!0,get:function(){return x.SvgFromUri}}),Object.defineProperty(e,"SvgFromXml",{enumerable:!0,get:function(){return x.SvgFromXml}}),Object.defineProperty(e,"SvgUri",{enumerable:!0,get:function(){return x.SvgUri}}),Object.defineProperty(e,"SvgXml",{enumerable:!0,get:function(){return x.SvgXml}}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6])),b=t(r(d[7])),p=t(r(d[8])),P=t(r(d[9])),y=t(r(d[10])),j=t(r(d[11])),O=t(r(d[12])),v=t(r(d[13])),S=t(r(d[14])),s=t(r(d[15])),U=t(r(d[16])),F=t(r(d[17])),X=t(r(d[18])),_=t(r(d[19])),h=t(r(d[20])),G=t(r(d[21])),T=t(r(d[22])),x=r(d[23]),A=b.default;e.default=A},557,[3,558,574,575,576,579,580,581,577,583,585,586,587,588,589,590,591,592,595,596,597,598,599,600]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),n=u(r(d[4])),h=u(r(d[5])),o=u(r(d[6])),s=u(r(d[7])),y=u(r(d[8])),p=u(r(d[9])),c=r(d[10]),v=t(r(d[11])),x=(function(t){function u(){return(0,n.default)(this,u),(0,o.default)(this,(0,s.default)(u).apply(this,arguments))}return(0,y.default)(u,t),(0,h.default)(u,[{key:"render",value:function(){var t=this.props,u=t.x,n=t.y,h=t.width,o=t.height,s=t.rx,y=t.ry;return p.default.createElement(_,(0,l.default)({ref:this.refMethod},(0,v.default)((0,f.default)({},(0,v.propsAndStyles)(t),{x:null,y:null}),this),{x:u,y:n,width:h,height:o,rx:s,ry:y}))}}]),u})(u(r(d[12])).default);e.default=x,x.displayName='Rect',x.defaultProps={x:0,y:0,width:0,height:0,rx:0,ry:0};var _=(0,c.requireNativeComponent)('RNSVGRect')},558,[2,3,24,53,4,5,6,9,10,59,15,559,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.propsAndStyles=function(t){var n=t.style;return(0,l.default)({},n&&n.length?Object.assign.apply(Object,[{}].concat((0,o.default)(n))):n,t)},e.default=function(t,o){var k=t.opacity,b=t.onLayout,_=t.id,h=t.clipPath,j=t.mask,x=t.transform,L=[],O=(0,s.props2transform)(t),P=(0,s.transformToMatrix)(O,x),M=(0,l.default)({matrix:P,onLayout:b},O,{propList:L,opacity:(0,y.default)(k)},(0,c.default)(t,o),(0,u.default)(t,L),(0,f.default)(t,L));_&&(M.name=_);h&&(0,n.default)(M,(0,p.default)(t));if(j){var w=j.match(v.idPattern);w?M.mask=w[1]:console.warn('Invalid `mask` prop, expected a mask like "#id", but got: "'+j+'"')}return M};var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),s=r(d[6]),p=t(r(d[7])),c=t(r(d[8])),y=t(r(d[9])),v=r(d[10])},559,[3,24,31,53,560,564,566,569,571,563,570]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(l,n){var o=l.fill,p=l.fillRule,s=l.fillOpacity;null!=o&&n.push('fill');null!=s&&n.push('fillOpacity');null!=p&&n.push('fillRule');return{fill:o||'number'==typeof o?(0,u.default)(o):c,fillRule:0===t[p]?0:1,fillOpacity:(0,f.default)(s)}};var u=l(r(d[1])),f=l(r(d[2])),n=r(d[3]),t={evenodd:0,nonzero:1},o=n.colorNames.black,c=[0,(0,n.integerColor)(o)]},560,[3,561,563,562]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){if('number'==typeof n&&n>>>0===n&&n>=0&&n<=4294967295)return[0,(0,t.integerColor)(n)];if(!n||'none'===n)return null;if('currentColor'===n)return o;var l='string'==typeof n&&n.match(u);if(l)return[1,l[1]];var f=(0,t.default)(n);if('number'==typeof f)return[0,f];return console.warn("\""+n+"\" is not a valid color or brush"),null};var t=n(r(d[1])),u=/^url\(#(.+)\)$/,o=[2]},561,[2,562]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(l){if('number'==typeof l)return l>>>0===l&&l>=0&&l<=4294967295?O(l):null;var n='string'==typeof l?I(l):l;if(!Array.isArray(n))return n;var t=n[0],o=n[1],s=n[2],u=n[3],h=((void 0===u?4278190080:Math.round(255*u)<<24)|Math.round(255*t)<<16|Math.round(255*o)<<8|Math.round(255*s))>>>0;return O(h)},e.integerColor=e.colorNames=void 0;var l=r(d[0]),n={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};for(var t in e.colorNames=n,n)if(n.hasOwnProperty(t)){var o=n[t],s=o[0],u=o[1],h=o[2];n[t]=(4278190080|s<<16|u<<8|h)>>>0}function c(l,n,t,o){var s,u,h,c,f,b=l/360,p=n/100,y=t/100;if(0===p)return[f=y,f,f,o];s=2*y-(u=y<.5?y*(1+p):y+p-y*p),c=[0,0,0,o];for(var
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){var t=+n;return'number'!=typeof t||isNaN(t)?1:t}},563,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,h){var f=t.stroke,c=t.strokeOpacity,p=t.strokeLinecap,v=t.strokeLinejoin,y=t.strokeDasharray,D=t.strokeWidth,L=t.strokeDashoffset,j=t.strokeMiterlimit,M=t.vectorEffect;null!=f&&h.push('stroke');null!=D&&h.push('strokeWidth');null!=c&&h.push('strokeOpacity');null!=y&&h.push('strokeDasharray');null!=L&&h.push('strokeDashoffset');null!=p&&h.push('strokeLinecap');null!=v&&h.push('strokeLinejoin');null!=j&&h.push('strokeMiterlimit');var O=y&&'none'!==y?(0,n.default)(y):null;return{stroke:(0,o.default)(f),strokeOpacity:(0,s.default)(c),strokeLinecap:l[p]||0,strokeLinejoin:u[v]||0,strokeDasharray:O&&O.length%2==1?O.concat(O):O,strokeWidth:null!=D?D:1,strokeDashoffset:y?+L||0:null,strokeMiterlimit:parseFloat(j)||4,vectorEffect:k[M]||0}};var o=t(r(d[1])),s=t(r(d[2])),n=t(r(d[3])),l={butt:0,square:2,round:1},u={miter:0,bevel:2,round:1},k={none:0,default:0,nonScalingStroke:1,'non-scaling-stroke':1,inherit:2,uri:3}},564,[3,561,563,565]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(u){return Array.isArray(u)?u:'number'==typeof u?[u]:'string'==typeof u?u.trim().replace(n,' ').split(t):[]};var t=/\s+/,n=/,/g},565,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.props2transform=f,e.transformToMatrix=l,e.default=function(s){if(Array.isArray(s))return s;if('string'==typeof s)try{var o=(0,n.parse)(s);return[o[0],o[3],o[1],o[4],o[2],o[5]]}catch(n){return console.error(n),t.identity}return l(f(s),s.transform)};var t=r(d[0]),n=r(d[1]);function s(n){var s=n.x,o=n.y,f=n.originX,l=n.originY,c=n.scaleX,y=n.scaleY,u=n.rotation,p=n.skewX,X=n.skewY;(0,t.appendTransform)(s+f,o+l,c,y,u,p,X,f,l)}function o(t,n,s,o){var f,l;if('number'==typeof t)f=l=t;else if('string'==typeof t){var c=t.split(/\s*,\s*/);2===c.length?(f=+c[0],l=+c[1]):1===c.length&&(f=l=+c[0])}else Array.isArray(t)&&(2===t.length?(f=+t[0],l=+t[1]):1===t.length&&(f=l=+t[0]));return n=+n,isNaN(n)||(f=n),s=+s,isNaN(s)||(l=s),[f||o||0,l||o||0]}function f(t){var n=t.translate,s=t.translateX,f=t.translateY,l=t.origin,c=t.originX,y=t.originY,u=t.scale,p=t.scaleX,X=t.scaleY,Y=t.skew,v=t.skewX,k=t.skewY,w=t.rotation,A=t.x,h=t.y,x=o(n,s||A,f||h),N=o(l,c,y),_=o(u,p,X,1),b=o(Y,v,k);return{rotation:+w||0,originX:N[0],originY:N[1],scaleX:_[0],scaleY:_[1],skewX:b[0],skewY:b[1],x:x[0],y:x[1]}}function l(o,l){if((0,t.reset)(),s(o),l)if(Array.isArray(l))'number'==typeof l[0]&&(0,t.append)(l[0],l[1],l[2],l[3],l[4],l[5]);else if('string'==typeof l)try{var c=(0,n.parse)(l);(0,t.append)(c[0],c[3],c[1],c[4],c[2],c[5])}catch(t){console.error(t)}else s(f(l));return(0,t.toArray)()}},566,[567,568]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.reset=function(){if(M)return;f=v=1,o=u=c=s=0,M=!0},e.toArray=function(){if(M)return n;return[f,o,u,v,c,s]},e.append=h,e.appendTransform=function(n,p,l,y,_,P,b,j,A){if(0===n&&0===p&&1===l&&1===y&&0===_&&0===P&&0===b&&0===j&&0===A)return;var I,O;if(_%360){var T=_*t;I=Math.cos(T),O=Math.sin(T)}else I=1,O=0;var k=I*l,q=O*l,w=-O*y,x=I*y;if(P||b){var z=Math.tan(b*t),B=Math.tan(P*t);h(k+B*q,z*k+q,w+B*x,z*w+x,n,p)}else h(k,q,w,x,n,p);(j||A)&&(c-=j*f+A*u,s-=j*o+A*v,M=!1)},e.identity=void 0;var t=Math.PI/180,n=[1,0,0,1,0,0];e.identity=n;var f=1,o=0,u=0,v=1,c=0,s=0,M=!0;function h(t,n,h,p,l,y){var _=1!==t||0!==n||0!==h||1!==p,P=0!==l||0!==y;if(_||P){if(M)return M=!1,f=t,o=n,u=h,v=p,c=l,void(s=y);var b=f,j=o,A=u,I=v;_&&(f=b*t+A*n,o=j*t+I*n,u=b*h+A*p,v=j*h+I*p),P&&(c=b*l+A*y+c,s=j*l+I*y+s)}}},567,[]);
__d(function(g,r,i,a,m,e,d){"use strict";function n(t,u,o,f){this.message=t,this.expected=u,this.found=o,this.location=f,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,n)}!(function(n,t){function u(){this.constructor=n}u.prototype=t.prototype,n.prototype=new u})(n,Error),n.buildMessage=function(n,t){var u={literal:function(n){return"\""+f(n.text)+"\""},class:function(n){var t,u="";for(t=0;t<n.parts.length;t++)u+=n.parts[t]instanceof Array?s(n.parts[t][0])+"-"+s(n.parts[t][1]):s(n.parts[t]);return"["+(n.inverted?"^":"")+u+"]"},any:function(n){return"any character"},end:function(n){return"end of input"},other:function(n){return n.description}};function o(n){return n.charCodeAt(0).toString(16).toUpperCase()}function f(n){return n.replace(/\\/g,'\\\\').replace(/"/g,'\\"').replace(/\0/g,'\\0').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\r/g,'\\r').replace(/[\x00-\x0F]/g,function(n){return'\\x0'+o(n)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(n){return'\\x'+o(n)})}function s(n){return n.replace(/\\/g,'\\\\').replace(/\]/g,'\\]').replace(/\^/g,'\\^').replace(/-/g,'\\-').replace(/\0/g,'\\0').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\r/g,'\\r').replace(/[\x00-\x0F]/g,function(n){return'\\x0'+o(n)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(n){return'\\x'+o(n)})}return"Expected "+(function(n){var t,o,f,s=new Array(n.length);for(t=0;t<n.length;t++)s[t]=(f=n[t],u[f.type](f));if(s.sort(),s.length>0){for(t=1,o=1;t<s.length;t++)s[t-1]!==s[t]&&(s[o]=s[t],o++);s.length=o}switch(s.length){case 1:return s[0];case 2:return s[0]+" or "+s[1];default:return s.slice(0,-1).join(", ")+", or "+s[s.length-1]}})(n)+" but "+(function(n){return n?"\""+f(n)+"\"":"end of input"})(t)+" found."},m.exports={SyntaxError:n,parse:function(t,u){u=void 0!==u?u:{};var o,f={},s={transformList:ve},l=ve,c=function(n){return n},h=function(n,t){return o=t,f=(u=n)[0],s=u[1],l=u[2],c=u[3],h=u[4],p=u[5],v=o[0],A=o[1],x=o[2],C=o[3],y=o[4],j=o[5],[f*v+s*C,f*A+s*y,f*x+s*j+l,c*v+h*C,c*A+h*y,c*x+h*j+p];var u,o,f,s,l,c,h,p,v,A,x,C,y,j},p="matrix",v=ce("matrix",!1),A="(",x=ce("(",!1),C=")",y=ce(")",!1),j=function(n,t,u,o,f,s){return[n,u,f,t,o,s]},w="translate",b=ce("translate",!1),E=function(n,t){return[1,0,n,0,1,t||0]},F="scale",M=ce("scale",!1),k=function(n,t){return[n,0,0,0,null===t?n:t,0]},S="rotate",R=ce("rotate",!1),I=function(n,t){var u=Math.cos(Be*n),o=Math.sin(Be*n);if(null!==t){var f=t[0],s=t[1];return[u,-o,u*-f+-o*-s+f,o,u,o*-f+u*-s+s]}return[u,-o,0,o,u,0]},T="skewX",X=ce("skewX",!1),Y=function(n){return[1,Math.tan(Be*n),0,0,1,0]},_="skewY",L=ce("skewY",!1),P=function(n){return[1,0,0,Math.tan(Be*n),1,0]},U=function(n){return parseFloat(n.join(""))},q=function(n){return parseInt(n.join(""))},z=function(n){return n},B=function(n,t){return[n,t]},D=",",G=ce(",",!1),H=function(n){return n.join("")},J=function(n){return n.join("")},K=function(n){return n.join("")},N={type:"other",description:"fractionalConstant"},O=".",Q=ce(".",!1),V=function(n,t){return[n?n.join(""):null,".",t.join("")].join("")},W=/^[eE]/,Z=he(["e","E"],!1,!1),$=function(n){return[n[0],n[1],n[2].join("")].join("")},ee=/^[+\-]/,re=he(["+","-"],!1,!1),ne=/^[0-9]/,te=he([["0","9"]],!1,!1),ue=/^[ \t\r\n]/,oe=he([" ","\t","\r","\n"],!1,!1),ie=0,fe=[{line:1,column:1}],se=0,le=[],ae=0;if("startRule"in u){if(!(u.startRule in s))throw new Error("Can't start parsing from rule \""+u.startRule+"\".");l=s[u.startRule]}function ce(n,t){return{type:"literal",text:n,ignoreCase:t}}function he(n,t,u){return{type:"class",parts:n,inverted:t,ignoreCase:u}}function pe(n){var u,o=fe[n];if(o)return o;for(u=n-1;!fe[u];)u--;for(o={line:(o=fe[u]).line,column:o.column};u<n;)10===t.charCodeAt(u)?(o.line++,o.column=1):o.column++,u++;return fe[n]=o,o}function ge(n,t){var u=pe(n),o=pe(t);return{start:{offset:n,line:u.line,column:u.column},end:{offset:t,line:o.line,column:o.column}}}function de(n){ie<se||(ie>se&&(se=ie,le=[]),le.push(n))}function ve(){var n,t,u,o,s;for(n=ie,t=[],u=Pe();u!==f;)t.push(u),u=Pe();if(t!==f)if((u=Ae())===f&&(u=null),u!==f){for(o=[],s=Pe();s!
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){var c=n.clipPath,o=n.clipRule,p={};o&&(p.clipRule=0===l[o]?0:1);if(c){var u=c.match(t.idPattern);u?p.clipPath=u[1]:console.warn('Invalid `clipPath` prop, expected a clipPath like "#id", but got: "'+c+'"')}return p};var t=r(d[0]),l={evenodd:0,nonzero:1}},569,[570]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.pickNotNil=function(n){var t={};for(var o in n)if(n.hasOwnProperty(o)){var u=n[o];void 0!==u&&null!==u&&(t[o]=u)}return t},e.idPattern=void 0;e.idPattern=/#([^)]+)\)?$/},570,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n,t){for(var l=n.onPress,u=n.disabled,p=n.onPressIn,R=n.onPressOut,c=n.onLongPress,b=n.delayPressIn,h=n.delayPressOut,P=n.delayLongPress,v=n.pointerEvents,H={},S=!1,f=0;f<s;f++){var y=o[f],O=n[y];O&&(S=!0,H[y]=O)}v&&(H.pointerEvents=v);(null!=u||l||p||R||c||b||h||P)&&(S=!0,H.onResponderMove=t.touchableHandleResponderMove,H.onResponderGrant=t.touchableHandleResponderGrant,H.onResponderRelease=t.touchableHandleResponderRelease,H.onResponderTerminate=t.touchableHandleResponderTerminate,H.onStartShouldSetResponder=t.touchableHandleStartShouldSetResponder,H.onResponderTerminationRequest=t.touchableHandleResponderTerminationRequest);S&&(H.responsible=!0);return H};var n=r(d[0]),o=Object.keys(n.PanResponder.create({}).panHandlers),s=o.length},571,[15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),c=r(d[6]),s=t(r(d[7])),v=Object.keys(s.default),p=v.map(function(t){return s.default[t]}),h=v.length,b=(function(t){function c(){var t;(0,n.default)(this,c),(t=(0,u.default)(this,(0,o.default)(c).apply(this,arguments))).refMethod=function(n){t.root=n},t.setNativeProps=function(n){t.root.setNativeProps(n)};for(var f=0;f<h;f++){var s=v[f],b=p[f];t[s]='function'==typeof b?b.bind((0,l.default)((0,l.default)(t))):b}return t.state=t.touchableGetInitialState(),t}return(0,f.default)(c,t),c})(c.Component);e.default=b},572,[3,4,6,9,10,8,59,573]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=o(r(d[1])),t=r(d[2]),s={top:20,left:20,right:20,bottom:30},p=(0,n.default)({},t.Touchable.Mixin,{touchableHandleStartShouldSetResponder:function(o){return this.props.onStartShouldSetResponder?this.props.onStartShouldSetResponder(o):t.Touchable.Mixin.touchableHandleStartShouldSetResponder.call(this,o)},touchableHandleResponderTerminationRequest:function(o){return this.props.onResponderTerminationRequest?this.props.onResponderTerminationRequest(o):t.Touchable.Mixin.touchableHandleResponderTerminationRequest.call(this,o)},touchableHandleResponderGrant:function(o){return this.props.onResponderGrant?this.props.onResponderGrant(o):t.Touchable.Mixin.touchableHandleResponderGrant.call(this,o)},touchableHandleResponderMove:function(o){return this.props.onResponderMove?this.props.onResponderMove(o):t.Touchable.Mixin.touchableHandleResponderMove.call(this,o)},touchableHandleResponderRelease:function(o){return this.props.onResponderRelease?this.props.onResponderRelease(o):t.Touchable.Mixin.touchableHandleResponderRelease.call(this,o)},touchableHandleResponderTerminate:function(o){return this.props.onResponderTerminate?this.props.onResponderTerminate(o):t.Touchable.Mixin.touchableHandleResponderTerminate.call(this,o)},touchableHandlePress:function(o){this.props.onPress&&this.props.onPress(o)},touchableHandleActivePressIn:function(o){this.props.onPressIn&&this.props.onPressIn(o)},touchableHandleActivePressOut:function(o){this.props.onPressOut&&this.props.onPressOut(o)},touchableHandleLongPress:function(o){this.props.onLongPress&&this.props.onLongPress(o)},touchableGetPressRectOffset:function(){return this.props.pressRetentionOffset||s},touchableGetHitSlop:function(){return this.props.hitSlop},touchableGetHighlightDelayMS:function(){return this.props.delayPressIn||0},touchableGetLongPressDelayMS:function(){return 0===this.props.delayLongPress?0:this.props.delayLongPress||500},touchableGetPressOutDelayMS:function(){return this.props.delayPressOut||0}});e.default=p},573,[3,53,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),n=u(r(d[4])),c=u(r(d[5])),o=u(r(d[6])),s=u(r(d[7])),p=u(r(d[8])),v=r(d[9]),y=t(r(d[10])),h=(function(t){function u(){return(0,f.default)(this,u),(0,c.default)(this,(0,o.default)(u).apply(this,arguments))}return(0,s.default)(u,t),(0,n.default)(u,[{key:"render",value:function(){var t=this.props,u=t.cx,f=t.cy,n=t.r;return p.default.createElement(_,(0,l.default)({ref:this.refMethod},(0,y.default)((0,y.propsAndStyles)(t),this),{cx:u,cy:f,r:n}))}}]),u})(u(r(d[11])).default);e.default=h,h.displayName='Circle',h.defaultProps={cx:0,cy:0,r:0};var _=(0,v.requireNativeComponent)('RNSVGCircle')},574,[2,3,24,4,5,6,9,10,59,15,559,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=l(r(d[4])),s=l(r(d[5])),o=l(r(d[6])),c=l(r(d[7])),p=l(r(d[8])),y=r(d[9]),v=t(r(d[10])),h=(function(t){function l(){return(0,f.default)(this,l),(0,s.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,c.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props,l=t.cx,f=t.cy,n=t.rx,s=t.ry;return p.default.createElement(x,(0,u.default)({ref:this.refMethod},(0,v.default)((0,v.propsAndStyles)(t),this),{cx:l,cy:f,rx:n,ry:s}))}}]),l})(l(r(d[11])).default);e.default=h,h.displayName='Ellipse',h.defaultProps={cx:0,cy:0,rx:0,ry:0};var x=(0,y.requireNativeComponent)('RNSVGEllipse')},575,[2,3,24,4,5,6,9,10,59,15,559,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),l=t(r(d[2])),f=t(r(d[3])),n=t(r(d[4])),o=t(r(d[5])),s=t(r(d[6])),p=t(r(d[7])),v=t(r(d[8])),c=t(r(d[9])),h=t(r(d[10])),y=(function(t){function c(){var t,u;(0,l.default)(this,c);for(var f=arguments.length,s=new Array(f),p=0;p<f;p++)s[p]=arguments[p];return(u=(0,n.default)(this,(t=(0,o.default)(c)).call.apply(t,[this].concat(s)))).setNativeProps=function(t){var l=t.points;l&&(t.d="M"+(0,h.default)(l)+"z"),u.root.setNativeProps(t)},u}return(0,s.default)(c,t),(0,f.default)(c,[{key:"render",value:function(){var t=this.props,l=t.points;return p.default.createElement(v.default,(0,u.default)({ref:this.refMethod,d:"M"+(0,h.default)(l)+"z"},t))}}]),c})(c.default);e.default=y,y.displayName='Polygon',y.defaultProps={points:''}},576,[3,24,4,5,6,9,10,59,577,572,578]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var f=u(r(d[2])),l=u(r(d[3])),n=u(r(d[4])),o=u(r(d[5])),s=u(r(d[6])),h=u(r(d[7])),p=u(r(d[8])),v=r(d[9]),c=t(r(d[10])),y=(function(t){function u(){return(0,l.default)(this,u),(0,o.default)(this,(0,s.default)(u).apply(this,arguments))}return(0,h.default)(u,t),(0,n.default)(u,[{key:"render",value:function(){var t=this.props;return p.default.createElement(_,(0,f.default)({ref:this.refMethod},(0,c.default)((0,c.propsAndStyles)(t),this),{d:t.d}))}}]),u})(u(r(d[11])).default);e.default=y,y.displayName='Path';var _=(0,v.requireNativeComponent)('RNSVGPath')},577,[2,3,24,4,5,6,9,10,59,15,559,572]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return(Array.isArray(n)?n.join(','):n).replace(/[^e]-/,' -').split(/(?:\s+|\s*,\s*)/g).join(' ')}},578,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),n=t(r(d[4])),o=t(r(d[5])),s=t(r(d[6])),p=t(r(d[7])),v=t(r(d[8])),c=t(r(d[9])),h=t(r(d[10])),y=(function(t){function c(){var t,l;(0,u.default)(this,c);for(var f=arguments.length,s=new Array(f),p=0;p<f;p++)s[p]=arguments[p];return(l=(0,n.default)(this,(t=(0,o.default)(c)).call.apply(t,[this].concat(s)))).setNativeProps=function(t){var u=t.points;u&&(t.d="M"+(0,h.default)(u)),l.root.setNativeProps(t)},l}return(0,s.default)(c,t),(0,f.default)(c,[{key:"render",value:function(){var t=this.props,u=t.points;return p.default.createElement(v.default,(0,l.default)({ref:this.refMethod,d:"M"+(0,h.default)(u)},t))}}]),c})(c.default);e.default=y,y.displayName='Polyline',y.defaultProps={points:''}},579,[3,24,4,5,6,9,10,59,577,572,578]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var f=u(r(d[2])),l=u(r(d[3])),n=u(r(d[4])),o=u(r(d[5])),s=u(r(d[6])),y=u(r(d[7])),p=u(r(d[8])),v=r(d[9]),h=t(r(d[10])),c=(function(t){function u(){return(0,l.default)(this,u),(0,o.default)(this,(0,s.default)(u).apply(this,arguments))}return(0,y.default)(u,t),(0,n.default)(u,[{key:"render",value:function(){var t=this.props,u=t.x1,l=t.y1,n=t.x2,o=t.y2;return p.default.createElement(x,(0,f.default)({ref:this.refMethod},(0,h.default)((0,h.propsAndStyles)(t),this),{x1:u,y1:l,x2:n,y2:o}))}}]),u})(u(r(d[11])).default);e.default=c,c.displayName='Line',c.defaultProps={x1:0,y1:0,x2:0,y2:0};var x=(0,v.requireNativeComponent)('RNSVGLine')},580,[2,3,24,4,5,6,9,10,59,15,559,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),l=t(r(d[2])),s=t(r(d[3])),n=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),c=t(r(d[7])),p=t(r(d[8])),h=t(r(d[9])),v=t(r(d[10])),y=r(d[11]),k=t(r(d[12])),N=t(r(d[13])),b=t(r(d[14])),w=t(r(d[15])),L=y.NativeModules.RNSVGSvgViewManager,R=y.StyleSheet.create({svg:{backgroundColor:'transparent',borderWidth:0}}),M=(function(t){function b(){var t,o;(0,u.default)(this,b);for(var l=arguments.length,s=new Array(l),n=0;n<l;n++)s[n]=arguments[n];return(o=(0,c.default)(this,(t=(0,p.default)(b)).call.apply(t,[this].concat(s)))).measureInWindow=function(){var t;(t=o.root).measureInWindow.apply(t,arguments)},o.measure=function(){var t;(t=o.root).measure.apply(t,arguments)},o.measureLayout=function(){var t;(t=o.root).measureLayout.apply(t,arguments)},o.setNativeProps=function(t){var l=t.width,s=t.height;l&&(t.bbWidth=l),s&&(t.bbHeight=s),o.root.setNativeProps(t)},o.toDataURL=function(t,l){if(t){var s=(0,y.findNodeHandle)(o.root);L.toDataURL(s,l,t)}},o}return(0,h.default)(b,t),(0,f.default)(b,[{key:"render",value:function(){var t=this.props,u=t.opacity,f=t.viewBox,c=t.preserveAspectRatio,p=t.style,h=t.children,y=t.onLayout,b=(0,n.default)(t,["opacity","viewBox","preserveAspectRatio","style","children","onLayout"]),L=(0,s.default)({},p&&p.length?Object.assign.apply(Object,[{}].concat((0,l.default)(p))):p,b),M=L.color,S=L.width,W=L.height,D=L.font,j=L.transform,x=L.fill,A=L.fillOpacity,I=L.fillRule,P=L.stroke,V=L.strokeWidth,_=L.strokeOpacity,B=L.strokeDasharray,C=L.strokeDashoffset,H=L.strokeLinecap,E=L.strokeLinejoin,G=L.strokeMiterlimit,U=parseInt(S,10),q=parseInt(W,10),Y=isNaN(U)||'%'===S[S.length-1],z=isNaN(q)||'%'===W[W.length-1],F=S&&W?{width:Y?S:U,height:z?W:q,flex:0}:null,J=+u,K=isNaN(J)?null:{opacity:J};return v.default.createElement(O,(0,o.default)({},b,{bbWidth:S,bbHeight:W,tintColor:M,onLayout:y,ref:this.refMethod,style:[R.svg,p,K,F]},(0,k.default)(b,this),(0,N.default)({viewBox:f,preserveAspectRatio:c})),v.default.createElement(w.default,{children:h,style:p,font:D,transform:j,fill:x,fillOpacity:A,fillRule:I,stroke:P,strokeWidth:V,strokeOpacity:_,strokeDasharray:B,strokeDashoffset:C,strokeLinecap:H,strokeLinejoin:E,strokeMiterlimit:G}))}}]),b})(b.default);e.default=M,M.displayName='Svg',M.defaultProps={preserveAspectRatio:'xMidYMid meet'};var O=(0,y.requireNativeComponent)('RNSVGSvgView')},581,[3,24,31,53,55,4,5,6,9,10,59,15,571,582,572,583]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(l){var x=l.viewBox,u=l.preserveAspectRatio;if(!x)return null;var o=(Array.isArray(x)?x:x.trim().split(M)).map(Number);if(4!==o.length||o.some(isNaN))return console.warn('Invalid `viewBox` prop:'+x),null;var v=u?u.trim().split(M):[];return{minX:o[0],minY:o[1],vbWidth:o[2],vbHeight:o[3],align:t[v[0]]||'xMidYMid',meetOrSlice:n[v[1]]||0}},e.alignEnum=e.meetOrSliceTypes=void 0;var n={meet:0,slice:1,none:2};e.meetOrSliceTypes=n;var t=['xMinYMin','xMidYMin','xMaxYMin','xMinYMid','xMidYMid','xMaxYMid','xMinYMax','xMidYMax','xMaxYMax','none'].reduce(function(n,t){return n[t]=t,n},{});e.alignEnum=t;var M=/\s+/},582,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),s=n(r(d[6])),v=n(r(d[7])),c=n(r(d[8])),p=r(d[9]),h=t(r(d[10])),y=r(d[11]),N=n(r(d[12])),_=(function(t){function n(){var t,u;(0,l.default)(this,n);for(var f=arguments.length,v=new Array(f),c=0;c<f;c++)v[c]=arguments[c];return(u=(0,o.default)(this,(t=(0,s.default)(n)).call.apply(t,[this].concat(v)))).setNativeProps=function(t){var n=!t.matrix&&(0,N.default)(t);n&&(t.matrix=n),u.root.setNativeProps(t)},u}return(0,v.default)(n,t),(0,f.default)(n,[{key:"render",value:function(){var t=this.props,n=(0,h.propsAndStyles)(t);return c.default.createElement(x,(0,u.default)({ref:this.refMethod},(0,h.default)(n,this),{font:(0,y.extractFont)(n)}),t.children)}}]),n})(n(r(d[13])).default);e.default=_,_.displayName='G';var x=(0,p.requireNativeComponent)('RNSVGGroup')},583,[2,3,24,4,5,6,9,10,59,15,559,584,566,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.extractFont=b,e.setTSpan=function(t){l=t},e.default=function(t,n){var o=t.x,c=t.y,s=t.dx,S=t.dy,p=t.rotate,y=t.children,h=t.inlineSize,x=t.baselineShift,v=t.verticalAlign,F=t.alignmentBaseline,V='string'==typeof y||'number'==typeof y?n?f.default.createElement(l,null,String(y)):null:f.Children.count(y)>1||Array.isArray(y)?f.Children.map(y,A):y;return{content:null===V?String(y):null,children:V,inlineSize:h,baselineShift:x,verticalAlign:v,alignmentBaseline:F,font:b(t),x:(0,u.default)(o),y:(0,u.default)(c),dx:(0,u.default)(s),dy:(0,u.default)(S),rotate:(0,u.default)(p)}};var l,o=n(r(d[2])),f=t(r(d[3])),u=n(r(d[4])),c=r(d[5]),s=/^\s*((?:(?:normal|bold|italic)\s+)*)(?:(\d+(?:\.\d+)?(?:%|px|em|pt|pc|mm|cm|in]))*(?:\s*\/.*?)?\s+)?\s*"?([^"]*)/i,S=/^[\s"']*/,p=/[\s"']*$/,y=/\s*,\s*/g,h={};function x(t){return t?t.split(y)[0].replace(S,'').replace(p,''):null}function v(t){if(h.hasOwnProperty(t))return h[t];var n=s.exec(t);if(!n)return h[t]=null,null;var l=/bold/.exec(n[1]),o=/italic/.exec(n[1]);return h[t]={fontSize:n[2]||12,fontWeight:l?'bold':'normal',fontStyle:o?'italic':'normal',fontFamily:x(n[3])},h[t]}function b(t){var n=t.fontData,l=t.fontStyle,f=t.fontVariant,u=t.fontWeight,s=t.fontStretch,S=t.fontSize,p=t.fontFamily,y=t.textAnchor,h=t.textDecoration,b=t.letterSpacing,A=t.wordSpacing,F=t.kerning,V=t.fontFeatureSettings,z=t.fontVariantLigatures,D=t.fontVariationSettings,_=t.font,k=(0,c.pickNotNil)({fontData:n,fontStyle:l,fontVariant:f,fontWeight:u,fontStretch:s,fontSize:S,fontFamily:x(p),textAnchor:y,textDecoration:h,letterSpacing:b,wordSpacing:A,kerning:F,fontFeatureSettings:V,fontVariantLigatures:z,fontVariationSettings:D}),w='string'==typeof _?v(_):_;return(0,o.default)({},w,k)}function A(t){return'string'==typeof t||'number'==typeof t?f.default.createElement(l,null,String(t)):t}},584,[2,3,53,59,565,570]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),v=l(r(d[7])),p=l(r(d[8])),c=l(r(d[9])),h=r(d[10]),y=l(r(d[11])),N=t(r(d[12])),x=l(r(d[13])),_=r(d[14]),A=l(r(d[15]));r(d[16]);var P=(function(t){function l(){var t,u;(0,n.default)(this,l);for(var o=arguments.length,p=new Array(o),c=0;c<o;c++)p[c]=arguments[c];return(u=(0,s.default)(this,(t=(0,v.default)(l)).call.apply(t,[this].concat(p)))).setNativeProps=function(t){var l=!t.matrix&&(0,x.default)(t);l&&(t.matrix=l);var n=(0,N.propsAndStyles)(t);(0,f.default)(n,(0,_.pickNotNil)((0,y.default)(n,!0))),u.root.setNativeProps(n)},u}return(0,p.default)(l,t),(0,o.default)(l,[{key:"render",value:function(){var t=(0,N.propsAndStyles)(this.props),l=(0,N.default)((0,u.default)({},t,{x:null,y:null}),this);return(0,f.default)(l,(0,y.default)(t,!0)),l.ref=this.refMethod,c.default.createElement(S,l)}}]),l})(A.default);e.default=P,P.displayName='Text';var S=(0,h.requireNativeComponent)('RNSVGText')},585,[2,3,53,24,4,5,6,9,10,59,15,584,559,566,570,572,586]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),p=l(r(d[7])),v=l(r(d[8])),c=l(r(d[9])),h=r(d[10]),y=t(r(d[11])),N=l(r(d[12])),S=t(r(d[13])),_=r(d[14]),x=(function(t){function l(){var t,u;(0,f.default)(this,l);for(var o=arguments.length,v=new Array(o),c=0;c<o;c++)v[c]=arguments[c];return(u=(0,s.default)(this,(t=(0,p.default)(l)).call.apply(t,[this].concat(v)))).setNativeProps=function(t){var l=!t.matrix&&(0,N.default)(t);l&&(t.matrix=l);var f=(0,y.propsAndStyles)(t);(0,n.default)(f,(0,_.pickNotNil)((0,S.default)(f,!1))),u.root.setNativeProps(f)},u}return(0,v.default)(l,t),(0,o.default)(l,[{key:"render",value:function(){var t=(0,y.propsAndStyles)(this.props),l=(0,y.default)((0,u.default)({},t,{x:null,y:null}),this);return(0,n.default)(l,(0,S.default)(t,!1)),l.ref=this.refMethod,c.default.createElement(A,l)}}]),l})(l(r(d[15])).default);e.default=x,x.displayName='TSpan',(0,S.setTSpan)(x);var A=(0,h.requireNativeComponent)('RNSVGTSpan')},586,[2,3,53,24,4,5,6,9,10,59,15,559,566,584,570,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),f=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),o=n(r(d[6])),h=n(r(d[7])),c=n(r(d[8])),p=n(r(d[9])),v=n(r(d[10])),x=r(d[11]),y=n(r(d[12])),N=t(r(d[13])),P=n(r(d[14])),k=r(d[15]),O=n(r(d[16])),_=n(r(d[17])),B=(function(t){function n(){var t,l;(0,s.default)(this,n);for(var f=arguments.length,o=new Array(f),p=0;p<f;p++)o[p]=arguments[p];return(l=(0,h.default)(this,(t=(0,c.default)(n)).call.apply(t,[this].concat(o)))).setNativeProps=function(t){var n=!t.matrix&&(0,y.default)(t);n&&(t.matrix=n),(0,u.default)(t,(0,k.pickNotNil)((0,P.default)(t,!0))),l.root.setNativeProps(t)},l}return(0,p.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props,n=t.children,s=t.xlinkHref,o=t.href,h=void 0===o?s:o,c=t.startOffset,p=void 0===c?0:c,x=t.method,y=t.spacing,O=t.side,B=t.alignmentBaseline,M=t.midLine,T=(0,f.default)(t,["children","xlinkHref","href","startOffset","method","spacing","side","alignmentBaseline","midLine"]),b=h&&h.match(k.idPattern),w=b&&b[1];if(w){var A=(0,N.default)((0,l.default)({},(0,N.propsAndStyles)(T),{x:null,y:null}),this);return(0,u.default)(A,(0,P.default)({children:n},!0),{href:w,startOffset:p,method:x,spacing:y,side:O,alignmentBaseline:B,midLine:M}),A.ref=this.refMethod,v.default.createElement(L,A)}return console.warn('Invalid `href` prop for `TextPath` element, expected a href like "#id", but got: "'+h+'"'),v.default.createElement(_.default,{ref:this.refMethod},n)}}]),n})(O.default);e.default=B,B.displayName='TextPath';var L=(0,x.requireNativeComponent)('RNSVGTextPath')},587,[2,3,53,55,24,4,5,6,9,10,59,15,566,559,584,570,572,586]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=l(r(d[4])),h=l(r(d[5])),o=l(r(d[6])),s=l(r(d[7])),p=l(r(d[8])),c=l(r(d[9])),v=r(d[10]),y=t(r(d[11])),x=r(d[12]),w=(function(t){function l(){return(0,n.default)(this,l),(0,o.default)(this,(0,s.default)(l).apply(this,arguments))}return(0,p.default)(l,t),(0,h.default)(l,[{key:"render",value:function(){var t=this.props,l=t.children,n=t.x,h=t.y,o=t.width,s=t.height,p=t.xlinkHref,v=t.href,w=void 0===v?p:v,k=w.match(x.idPattern),N=k&&k[1];return N||console.warn('Invalid `href` prop for `Use` element, expected a href like "#id", but got: "'+w+'"'),c.default.createElement(_,(0,u.default)({ref:this.refMethod},(0,y.default)((0,f.default)({},(0,y.propsAndStyles)(t),{x:null,y:null}),this),{href:N,x:n,y:h,width:o,height:s}),l)}}]),l})(l(r(d[13])).default);e.default=w,w.displayName='Use',w.defaultProps={x:0,y:0,width:0,height:0};var _=(0,v.requireNativeComponent)('RNSVGUse')},588,[2,3,24,53,4,5,6,9,10,59,15,559,570,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),s=l(r(d[4])),f=l(r(d[5])),o=l(r(d[6])),h=l(r(d[7])),p=l(r(d[8])),c=l(r(d[9])),v=r(d[10]),y=r(d[11]),x=t(r(d[12])),M=/\s+/,S=(function(t){function l(){return(0,s.default)(this,l),(0,o.default)(this,(0,h.default)(l).apply(this,arguments))}return(0,p.default)(l,t),(0,f.default)(l,[{key:"render",value:function(){var t=this.props,l=t.preserveAspectRatio,s=t.x,f=t.y,o=t.width,h=t.height,p=t.xlinkHref,S=t.href,_=void 0===S?p:S,w=l.trim().split(M);return c.default.createElement(A,(0,u.default)({ref:this.refMethod},(0,x.default)((0,n.default)({},(0,x.propsAndStyles)(t),{x:null,y:null}),this),{x:s,y:f,width:o,height:h,meetOrSlice:y.meetOrSliceTypes[w[1]]||0,align:y.alignEnum[w[0]]||'xMidYMid',src:v.Image.resolveAssetSource('string'==typeof _?{uri:_}:_)}))}}]),l})(l(r(d[13])).default);e.default=S,S.displayName='Image',S.defaultProps={x:0,y:0,width:0,height:0,preserveAspectRatio:'xMidYMid meet'};var A=(0,v.requireNativeComponent)('RNSVGImage')},589,[2,3,24,53,4,5,6,9,10,59,15,582,559,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),l=t(r(d[2])),f=t(r(d[3])),n=t(r(d[4])),o=t(r(d[5])),s=t(r(d[6])),v=t(r(d[7])),c=r(d[8]),h=t(r(d[9])),p=(function(t){function c(){return(0,l.default)(this,c),(0,n.default)(this,(0,o.default)(c).apply(this,arguments))}return(0,s.default)(c,t),(0,f.default)(c,[{key:"render",value:function(){var t=this.props,l=t.id,f=t.children;return v.default.createElement(y,(0,u.default)({ref:this.refMethod,name:l},(0,h.default)(t)),f)}}]),c})(t(r(d[10])).default);e.default=p,p.displayName='Symbol';var y=(0,c.requireNativeComponent)('RNSVGSymbol')},590,[3,24,4,5,6,9,10,59,15,582,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),s=n(r(d[6])),p=t(r(d[7])),c=r(d[8]),v=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return p.default.createElement(h,null,this.props.children)}}]),n})(p.Component);e.default=v,v.displayName='Defs';var h=(0,c.requireNativeComponent)('RNSVGDefs')},591,[2,3,4,5,6,9,10,59,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),s=t(r(d[6])),y=t(r(d[7])),p=r(d[8]),v=t(r(d[9])),h=(function(t){function p(){return(0,n.default)(this,p),(0,l.default)(this,(0,o.default)(p).apply(this,arguments))}return(0,s.default)(p,t),(0,f.default)(p,[{key:"render",value:function(){var t=this.props,n=t.x1,f=t.y1,l=t.x2,o=t.y2;return y.default.createElement(c,(0,u.default)({ref:this.refMethod,x1:n,y1:f,x2:l,y2:o},(0,v.default)(t,this)))}}]),p})(t(r(d[10])).default);e.default=h,h.displayName='LinearGradient',h.defaultProps={x1:'0%',y1:'0%',x2:'100%',y2:'0%'};var c=(0,p.requireNativeComponent)('RNSVGLinearGradient')},592,[3,24,4,5,6,9,10,59,15,593,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,n){var c=t.id,h=t.children,_=t.gradientTransform,y=t.transform,b=t.gradientUnits;if(!c)return null;for(var j=[],w=o.Children.map(h,function(t){return o.default.cloneElement(t,{parent:n})}),A=w.length,C=0;C<A;C++){var E=w[C].props,M=E.offset,N=E.stopColor,O=E.stopOpacity,T=p(M||0),U=N&&(0,f.default)(N);if('number'!=typeof U||isNaN(T))console.warn("\""+N+"\" is not a valid color or \""+M+"\" is not a valid offset");else{var V=Math.round(255*(0,u.default)(O));j.push([T,16777215&U|V<<24])}}j.sort(v);for(var P=[],$=j.length,k=0;k<$;k++){var q=j[k];P.push(q[0],q[1])}return{name:c,gradient:P,children:w,gradientUnits:s.default[b]||0,gradientTransform:(0,l.default)(_||y||t)}};var o=n(r(d[2])),f=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),s=t(r(d[6])),c=/^([+\-]?\d+(?:\.\d+)?(?:[eE][+\-]?\d+)?)(%?)$/;function p(t){if('number'==typeof t)return t;if('object'==typeof t&&'function'==typeof t.__getAnimatedValue)return t.__getAnimatedValue();var n='string'==typeof t&&t.match(c);return n?n[2]?n[1]/100:+n[1]:(console.warn("\""+t+"\" is not a valid number or percentage string."),0)}var v=function(t,n){return t[0]-n[0]}},593,[3,2,59,562,563,566,594]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default={objectBoundingBox:0,userSpaceOnUse:1}},594,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var f=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),n=t(r(d[4])),c=t(r(d[5])),o=t(r(d[6])),y=t(r(d[7])),s=r(d[8]),p=t(r(d[9])),v=(function(t){function s(){return(0,u.default)(this,s),(0,n.default)(this,(0,c.default)(s).apply(this,arguments))}return(0,o.default)(s,t),(0,l.default)(s,[{key:"render",value:function(){var t=this.props,u=t.fx,l=t.fy,n=t.rx,c=t.ry,o=t.r,s=t.cx,v=t.cy;return y.default.createElement(x,(0,f.default)({ref:this.refMethod,fx:u,fy:l,rx:n||o,ry:c||o,cx:s,cy:v},(0,p.default)(t,this)))}}]),s})(t(r(d[10])).default);e.default=v,v.displayName='RadialGradient',v.defaultProps={fx:'50%',fy:'50%',cx:'50%',cy:'50%',r:'50%'};var x=(0,s.requireNativeComponent)('RNSVGRadialGradient')},595,[3,24,4,5,6,9,10,59,15,593,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),f=t(r(d[5])),p=(function(t){function p(){var t,o;(0,n.default)(this,p);for(var f=arguments.length,c=new Array(f),s=0;s<f;s++)c[s]=arguments[s];return(o=(0,u.default)(this,(t=(0,l.default)(p)).call.apply(t,[this].concat(c)))).setNativeProps=function(){var t=o.props.parent;t&&t.forceUpdate()},o}return(0,f.default)(p,t),(0,o.default)(p,[{key:"render",value:function(){return null}}]),p})(r(d[6]).Component);e.default=p,p.displayName='Stop',p.defaultProps={stopColor:'#000',stopOpacity:1}},596,[3,4,5,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),l=t(r(d[2])),f=t(r(d[3])),n=t(r(d[4])),o=t(r(d[5])),h=t(r(d[6])),p=t(r(d[7])),s=r(d[8]),v=t(r(d[9])),c=(function(t){function s(){return(0,l.default)(this,s),(0,n.default)(this,(0,o.default)(s).apply(this,arguments))}return(0,h.default)(s,t),(0,f.default)(s,[{key:"render",value:function(){var t=this.props,l=t.id,f=t.children;return p.default.createElement(y,(0,u.default)({ref:this.refMethod,name:l},(0,v.default)(t)),f)}}]),s})(t(r(d[10])).default);e.default=c,c.displayName='ClipPath';var y=(0,s.requireNativeComponent)('RNSVGClipPath')},597,[3,24,4,5,6,9,10,59,15,569,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),s=t(r(d[6])),p=t(r(d[7])),h=r(d[8]),v=t(r(d[9])),c=t(r(d[10])),y=t(r(d[11])),x=(function(t){function h(){return(0,u.default)(this,h),(0,l.default)(this,(0,o.default)(h).apply(this,arguments))}return(0,s.default)(h,t),(0,f.default)(h,[{key:"render",value:function(){var t=this.props,u=t.patternTransform,f=t.transform,l=t.id,o=t.x,s=t.y,h=t.width,x=t.height,P=t.patternUnits,U=t.patternContentUnits,_=t.children,C=t.viewBox,N=t.preserveAspectRatio,R=(0,v.default)(u||f||t);return p.default.createElement(w,(0,n.default)({ref:this.refMethod,name:l,x:o,y:s,width:h,height:x,matrix:R,patternTransform:R,patternUnits:y.default[P]||0,patternContentUnits:U?y.default[U]:1},(0,c.default)({viewBox:C,preserveAspectRatio:N})),_)}}]),h})(t(r(d[12])).default);e.default=x,x.displayName='Pattern',x.defaultProps={x:'0%',y:'0%',width:'100%',height:'100%'};var w=(0,h.requireNativeComponent)('RNSVGPattern')},598,[3,24,4,5,6,9,10,59,15,566,582,594,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),s=n(r(d[4])),f=n(r(d[5])),o=n(r(d[6])),h=n(r(d[7])),p=n(r(d[8])),v=n(r(d[9])),k=r(d[10]),y=n(r(d[11])),c=t(r(d[12])),x=n(r(d[13])),M=(function(t){function n(){return(0,s.default)(this,n),(0,o.default)(this,(0,h.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,f.default)(n,[{key:"render",value:function(){var t=this.props,n=t.maskTransform,s=t.transform,f=t.x,o=t.y,h=t.width,p=t.height,k=t.maskUnits,M=t.maskContentUnits,_=t.children;return v.default.createElement(U,(0,u.default)({ref:this.refMethod},(0,c.default)((0,l.default)({},(0,c.propsAndStyles)(t),{x:null,y:null}),this),{x:f,y:o,width:h,height:p,maskTransform:(0,y.default)(n||s||t),maskUnits:void 0!==k?x.default[k]:0,maskContentUnits:void 0!==M?x.default[M]:1}),_)}}]),n})(n(r(d[14])).default);e.default=M,M.displayName='Mask',M.defaultProps={x:'0%',y:'0%',width:'100%',height:'100%'};var U=(0,k.requireNativeComponent)('RNSVGMask')},599,[2,3,24,53,4,5,6,9,10,59,15,566,559,594,572]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.SvgAst=I,e.SvgXml=R,e.SvgUri=function(t){var n=t.uri,u=(0,h.useState)(),l=(0,s.default)(u,2),o=l[0],f=l[1];return(0,h.useEffect)(function(){V(n).then(f).catch(Z)},[n]),o&&h.default.createElement(R,{xml:o,override:t})||null},e.getStyle=K,e.astToReact=L,e.parse=ne,e.SvgFromUri=e.SvgFromXml=e.tags=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),c=n(r(d[6])),s=n(r(d[7])),p=n(r(d[8])),v=n(r(d[9])),h=t(r(d[10])),x=n(r(d[11])),y=n(r(d[12])),S=n(r(d[13])),E=n(r(d[14])),k=n(r(d[15])),w=n(r(d[16])),b=n(r(d[17])),U=n(r(d[18])),A=n(r(d[19])),D=n(r(d[20])),_=n(r(d[21])),C=n(r(d[22])),F=n(r(d[23])),M=n(r(d[24])),P=n(r(d[25])),T=n(r(d[26])),G=n(r(d[27])),O=n(r(d[28])),X=n(r(d[29])),j=n(r(d[30])),z=n(r(d[31])),N=n(r(d[32])),$={svg:b.default,circle:y.default,ellipse:S.default,g:A.default,text:D.default,tspan:_.default,textPath:C.default,path:U.default,polygon:E.default,polyline:k.default,line:w.default,rect:x.default,use:F.default,image:M.default,symbol:P.default,defs:T.default,linearGradient:G.default,radialGradient:O.default,stop:X.default,clipPath:j.default,pattern:z.default,mask:N.default};function I(t){var n=t.ast,u=t.override,l=n.props,o=n.children;return h.default.createElement(b.default,(0,v.default)({},l,u),o)}function R(t){var n=t.xml,u=t.override,l=(0,h.useMemo)(function(){return n&&ne(n)},[n]);return l&&h.default.createElement(I,{ast:l,override:u||t})||null}function V(t){var n;return p.default.async(function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,p.default.awrap(fetch(t));case 2:return n=u.sent,u.next=5,p.default.awrap(n.text());case 5:return u.abrupt("return",u.sent);case 6:case"end":return u.stop()}},null,this)}e.tags=$;var Z=console.error.bind(console);var q=(function(t){function n(){var t,l;(0,u.default)(this,n);for(var c=arguments.length,s=new Array(c),p=0;p<c;p++)s[p]=arguments[p];return(l=(0,o.default)(this,(t=(0,f.default)(n)).call.apply(t,[this].concat(s)))).state={},l}return(0,c.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){this.parse(this.props.xml)}},{key:"componentDidUpdate",value:function(t){var n=this.props.xml;n!==t.xml&&this.parse(n)}},{key:"parse",value:function(t){try{this.setState({ast:ne(t)})}catch(t){console.error(t)}}},{key:"render",value:function(){var t=this.props,n=this.state.ast;return n?h.default.createElement(I,{ast:n,override:t.override||t}):null}}]),n})(h.Component);e.SvgFromXml=q;var B=(function(t){function n(){var t,l;(0,u.default)(this,n);for(var c=arguments.length,s=new Array(c),p=0;p<c;p++)s[p]=arguments[p];return(l=(0,o.default)(this,(t=(0,f.default)(n)).call.apply(t,[this].concat(s)))).state={},l}return(0,c.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){this.fetch(this.props.uri)}},{key:"componentDidUpdate",value:function(t){var n=this.props.uri;n!==t.uri&&this.fetch(n)}},{key:"fetch",value:function(t){return p.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.t0=this,n.next=4,p.default.awrap(V(t));case 4:n.t1=n.sent,n.t2={xml:n.t1},n.t0.setState.call(n.t0,n.t2),n.next=12;break;case 9:n.prev=9,n.t3=n.catch(0),console.error(n.t3);case 12:case"end":return n.stop()}},null,this,[[0,9]])}},{key:"render",value:function(){var t=this.props,n=this.state.xml;return n?h.default.createElement(q,{xml:n,override:t}):null}}]),n})(h.Component);e.SvgFromUri=B;var H=function(t,n){return n.toUpperCase()},J=function(t){return t.replace(/-([a-z])/g,H)};function K(t){for(var n={},u=t.split(';'),l=u.length,o=0;o<l;o++){var f=u[o];if(0!==f.length){var c=f.split(':'),s=c[0],p=c[1];n[J(s.trim())]=p.trim()}}return n}function L(t,n){if('object'==typeof t){var u=t.Tag,l=t.props,o=t.children;return h.default.createElement(u,(0,v.default)({key:n},l),o.map(L))}return t}function Q(t,n){for(var u='';n--;)u+=t;return u}var W=function(t){return Q(' ',t.length)};function Y(t,n){for(var u=t.split('\n'),l=u.length,o=n,f=0;f<l;f++){var c=u[f].length;if(!(o>=c)){var s=t.slice(0,n).replace(/^\t+/,W),p=/(^|\n).*$/.e
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),u=v(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,h.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M20 18.688c3.563 0 10.688 1.75 10.688 5.313v2.688h-21.375v-2.688c0-3.563 7.125-5.313 10.688-5.313zM8 13.313h4v2.688h-4v4h-2.688v-4h-4v-2.688h4v-4h2.688v4zM20 16c-2.938 0-5.313-2.375-5.313-5.313s2.375-5.375 5.313-5.375 5.313 2.438 5.313 5.375-2.375 5.313-5.313 5.313z"}))};e.default=f},601,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),h=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M20.016 11.016v1.969h-12.188l5.578 5.625-1.406 1.406-8.016-8.016 8.016-8.016 1.406 1.406-5.578 5.625h12.188z"}))};e.default=h},602,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=t(r(d[4])),o=function(t){return n.default.createElement(f.default,(0,u.default)({width:10,height:6,viewBox:"0 0 10 6",fill:"none"},t),n.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M8.07001 0.248238C8.3471 -0.0596449 8.82132 -0.0846038 9.1292 0.192491C9.43709 0.469585 9.46205 0.943802 9.18495 1.25168L5.65622 5.19348C5.35829 5.52451 4.83922 5.52451 4.54128 5.19348L1.06752 1.25168C0.79043 0.943802 0.81539 0.469585 1.12327 0.192491C1.43115 -0.0846038 1.90537 -0.0596449 2.18247 0.248238L5.09875 3.57062L8.07001 0.248238Z"}))};e.default=o},603,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16.0933 8.33104C16.4628 7.92053 17.0951 7.88726 17.5056 8.25672C17.9161 8.62617 17.9494 9.25846 17.5799 9.66897L12.8749 14.9247C12.4777 15.3661 11.7856 15.3661 11.3883 14.9247L6.75666 9.66897C6.3872 9.25846 6.42048 8.62617 6.83099 8.25672C7.2415 7.88726 7.87379 7.92053 8.24325 8.33104L12.1316 12.7609L16.0933 8.33104Z",fill:"white"}))};e.default=o},604,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16.5223 18.2701C16.9328 18.6395 16.9661 19.2718 16.5966 19.6823C16.2272 20.0928 15.5949 20.1261 15.1844 19.7567L7.31769 12.6767C6.87631 12.2794 6.87631 11.5873 7.31769 11.1901L15.1844 4.11007C15.5949 3.74061 16.2272 3.77389 16.5966 4.1844C16.9661 4.59491 16.9328 5.2272 16.5223 5.59666L9.4815 11.9334L16.5223 18.2701Z",fill:"#A4B8D1"}))};e.default=o},605,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),c=u(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(f.Path,{d:"M16 12c2.188 0 4 1.813 4 4s-1.813 4-4 4-4-1.813-4-4 1.813-4 4-4zM16 22.688c3.688 0 6.688-3 6.688-6.688s-3-6.688-6.688-6.688-6.688 3-6.688 6.688 3 6.688 6.688 6.688zM16 6c6.688 0 12.375 4.125 14.688 10-2.313 5.875-8 10-14.688 10s-12.375-4.125-14.688-10c2.313-5.875 8-10 14.688-10z"}))};e.default=n},606,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M15.813 12h0.188c2.188 0 4 1.813 4 4v0.25zM10.063 13.063c-0.438 0.875-0.75 1.875-0.75 2.938 0 3.688 3 6.688 6.688 6.688 1.063 0 2.063-0.313 2.938-0.75l-2.063-2.063c-0.25 0.063-0.563 0.125-0.875 0.125-2.188 0-4-1.813-4-4 0-0.313 0.063-0.625 0.125-0.875zM2.688 5.688l1.688-1.688 23.625 23.625-1.688 1.688c-1.499-1.48-3.008-2.95-4.5-4.438-1.813 0.75-3.75 1.125-5.813 1.125-6.688 0-12.375-4.125-14.688-10 1.063-2.625 2.813-4.875 5-6.625-1.219-1.218-2.416-2.459-3.625-3.688zM16 9.313c-0.875 0-1.688 0.188-2.438 0.5l-2.875-2.875c1.625-0.625 3.438-0.938 5.313-0.938 6.688 0 12.313 4.125 14.625 10-1 2.5-2.563 4.625-4.563 6.313l-3.875-3.875c0.313-0.75 0.5-1.563 0.5-2.438 0-3.688-3-6.688-6.688-6.688z"}))};e.default=n},607,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),c=t(r(d[4])),f=function(t){return v.default.createElement(c.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),v.default.createElement(c.Path,{d:"M18.688 4.313c5.375 1.188 9.313 6 9.313 11.688s-3.938 10.5-9.313 11.688v-2.75c3.875-1.125 6.625-4.688 6.625-8.938s-2.75-7.813-6.625-8.938v-2.75zM22 16c0 2.375-1.313 4.375-3.313 5.375v-10.75c2 1 3.313 3 3.313 5.375zM4 12h5.313l6.688-6.688v21.375l-6.688-6.688h-5.313v-8z"}))};e.default=f},608,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),f=l(r(d[3])),s=t(r(d[4])),u=function(t){return f.default.createElement(s.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M14.667 12c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M22.667 12c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M14.667 20c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M13.333 26.667c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M21.333 26.667c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M6.667 20c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M6.667 12c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M28 20c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M28 12c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M13.333 5.333c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M21.333 5.333c0 0.736-0.597 1.333-1.333 1.333s-1.333-0.597-1.333-1.333c0-0.736 0.597-1.333 1.333-1.333s1.333 0.597 1.333 1.333z"}),f.default.createElement(s.Path,{fill:"#a4b8d1",d:"M22.667 20c0 1.473-1.194 2.667-2.667 2.667s-2.667-1.194-2.667-2.667c0-1.473 1.194-2.667 2.667-2.667s2.667 1.194 2.667 2.667z"}))};e.default=u},609,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),v=function(t){return c.default.createElement(f.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(f.Path,{d:"M22.688 14l5.313-5.313v14.625l-5.313-5.313v4.688c0 0.75-0.625 1.313-1.375 1.313h-16c-0.75 0-1.313-0.563-1.313-1.313v-13.375c0-0.75 0.563-1.313 1.313-1.313h16c0.75 0 1.375 0.563 1.375 1.313v4.688z"}))};e.default=v},610,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(f.Path,{d:"M4.375 2.688l23.625 23.625-1.688 1.688-4.25-4.25c-0.188 0.125-0.5 0.25-0.75 0.25h-16c-0.75 0-1.313-0.563-1.313-1.313v-13.375c0-0.75 0.563-1.313 1.313-1.313h1l-3.625-3.625zM28 8.688v14.25l-14.938-14.938h8.25c0.75 0 1.375 0.563 1.375 1.313v4.688z"}))};e.default=n},611,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M17.016 15.609l-3.609-3.609 3.609-3.609-1.406-1.406-3.609 3.609-3.609-3.609-1.406 1.406 3.609 3.609-3.609 3.609 1.406 1.406 3.609-3.609 3.609 3.609zM12 2.016q4.125 0 7.055 2.93t2.93 7.055-2.93 7.055-7.055 2.93-7.055-2.93-2.93-7.055 2.93-7.055 7.055-2.93z"}))};e.default=o},612,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),v=t(r(d[4])),c=function(t){return f.default.createElement(v.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(v.Path,{d:"M26.688 21.313v-16h-21.375v18.688l2.688-2.688h18.688zM26.688 2.688c1.438 0 2.625 1.188 2.625 2.625v16c0 1.438-1.188 2.688-2.625 2.688h-18.688l-5.313 5.313v-24c0-1.438 1.188-2.625 2.625-2.625h21.375z"}))};e.default=c},613,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),v=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M2.016 21v-6.984l15-2.016-15-2.016v-6.984l21 9z"}))};e.default=v},614,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),l=v(r(d[3])),u=t(r(d[4])),f=function(t){return l.default.createElement(u.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},t),l.default.createElement(u.Path,{d:"M18 8.016v-2.016h-12v2.016h12zM14.016 14.016v-2.016h-8.016v2.016h8.016zM6 9v2.016h12v-2.016h-12zM20.016 2.016c1.078 0 1.969 0.891 1.969 1.969v12c0 1.078-0.891 2.016-1.969 2.016h-14.016l-3.984 3.984v-18c0-1.078 0.891-1.969 1.969-1.969h16.031z"}))};e.default=f},615,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M9 16.172l10.594-10.594 1.406 1.406-12 12-5.578-5.578 1.406-1.406z"}))};e.default=o},616,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M18.984 6.422l-5.578 5.578 5.578 5.578-1.406 1.406-5.578-5.578-5.578 5.578-1.406-1.406 5.578-5.578-5.578-5.578 1.406-1.406 5.578 5.578 5.578-5.578z"}))};e.default=o},617,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=t(r(d[4])),o=function(t){return n.default.createElement(f.default,(0,u.default)({width:16,height:16,viewBox:"0 0 16 16",fill:"none"},t),n.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M9.41416 8L15.071 2.34315C15.4615 1.95262 15.4615 1.31946 15.071 0.928933C14.6805 0.538409 14.0473 0.538409 13.6568 0.928933L7.99995 6.58579L2.34309 0.928933C1.95257 0.538409 1.3194 0.538409 0.92888 0.928933C0.538355 1.31946 0.538355 1.95262 0.92888 2.34315L6.58573 8L0.92888 13.6569C0.538355 14.0474 0.538355 14.6805 0.92888 15.0711C1.3194 15.4616 1.95257 15.4616 2.34309 15.0711L7.99995 9.41421L13.6568 15.0711C14.0473 15.4616 14.6805 15.4616 15.071 15.0711C15.4615 14.6805 15.4615 14.0474 15.071 13.6569L9.41416 8Z"}))};e.default=o},618,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var v=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=h(r(d[2])),c=h(r(d[3])),u=v(r(d[4])),l=function(v){return c.default.createElement(u.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24"},v),c.default.createElement(u.Path,{d:"M18 11.016v-1.031c0-0.563-0.422-0.984-0.984-0.984h-3c-0.563 0-1.031 0.422-1.031 0.984v4.031c0 0.563 0.469 0.984 1.031 0.984h3c0.563 0 0.984-0.422 0.984-0.984v-1.031h-1.5v0.516h-2.016v-3h2.016v0.516h1.5zM11.016 11.016v-1.031c0-0.563-0.469-0.984-1.031-0.984h-3c-0.563 0-0.984 0.422-0.984 0.984v4.031c0 0.563 0.422 0.984 0.984 0.984h3c0.563 0 1.031-0.422 1.031-0.984v-1.031h-1.5v0.516h-2.016v-3h2.016v0.516h1.5zM18.984 3.984c1.078 0 2.016 0.938 2.016 2.016v12c0 1.078-0.938 2.016-2.016 2.016h-13.969c-1.125 0-2.016-0.938-2.016-2.016v-12c0-1.078 0.891-2.016 2.016-2.016h13.969z"}))};e.default=l},619,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M15.8716 7.70278C15.4611 7.33332 15.4278 6.70103 15.7972 6.29052C16.1667 5.88001 16.799 5.84673 17.2095 6.21619L22.4652 10.9212C22.9066 11.3184 22.9066 12.0105 22.4652 12.4077L17.2095 17.0394C16.799 17.4089 16.1667 17.3756 15.7972 16.9651C15.4278 16.5546 15.4611 15.9223 15.8716 15.5528L20.3014 11.6645L15.8716 7.70278Z",fill:"#A4B8D1"}),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M8.4651 15.5531C8.87561 15.9225 8.90889 16.5548 8.53943 16.9653C8.16997 17.3759 7.53768 17.4091 7.12717 17.0397L1.87145 12.3347C1.43007 11.9375 1.43007 11.2454 1.87145 10.8481L7.12717 6.21644C7.53768 5.84698 8.16997 5.88026 8.53943 6.29077C8.90889 6.70128 8.87561 7.33357 8.4651 7.70302L4.03526 11.5914L8.4651 15.5531Z",fill:"#A4B8D1"}))};e.default=o},620,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=c(r(d[2])),u=c(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,v.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M28 0c2.209 0 4 1.791 4 4v24c0 2.209-1.791 4-4 4s-4-1.791-4-4v-24c0-2.209 1.791-4 4-4zM16 8c2.209 0 4 1.791 4 4v16c0 2.209-1.791 4-4 4s-4-1.791-4-4v-16c0-2.209 1.791-4 4-4zM4 20v0c2.209 0 4 1.791 4 4v4c0 2.209-1.791 4-4 4s-4-1.791-4-4v-4c0-2.209 1.791-4 4-4v0z"}))};e.default=f},621,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(f.Path,{d:"M7.75 13c-0.010-0.35 0.15-0.69 0.42-0.92 0.75 0.16 1.45 0.47 2.080 0.92 0 0.68-0.56 1.24-1.25 1.24s-1.24-0.55-1.25-1.24zM13.75 13c0.63-0.44 1.33-0.75 2.080-0.91 0.27 0.23 0.43 0.57 0.42 0.91 0 0.7-0.56 1.26-1.25 1.26s-1.25-0.56-1.25-1.26v0zM12 9c-2.77-0.040-5.5 0.65-7.93 2l-0.070 1c0 1.23 0.29 2.44 0.84 3.54 2.37-0.36 4.76-0.54 7.16-0.54s4.79 0.18 7.16 0.54c0.55-1.1 0.84-2.31 0.84-3.54l-0.070-1c-2.43-1.35-5.16-2.040-7.93-2zM12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-5.523 0-10-4.477-10-10s4.477-10 10-10z"}))};e.default=n},622,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M4 4C4 2.89543 4.89543 2 6 2H14C15.1046 2 16 2.89543 16 4H6V18C4.89543 18 4 17.1046 4 16V4ZM10 8V20H18V8H10ZM10 6H18C19.1046 6 20 6.89543 20 8V20C20 21.1046 19.1046 22 18 22H10C8.89543 22 8 21.1046 8 20V8C8 6.89543 8.89543 6 10 6Z"}))};e.default=o},623,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var C=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var L=t(r(d[2])),l=t(r(d[3])),u=C(r(d[4])),f=function(C){return l.default.createElement(u.default,(0,L.default)({width:24,height:24,viewBox:"0 0 24 24"},C),l.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M14 4C14 4.85739 13.4605 5.58876 12.7024 5.87317L14.2286 9.94296L14.9455 11.8546C15.0074 11.9292 15.0708 11.9292 15.1098 11.8902L16.5535 10.4465L18.5858 8.41421C18.2239 8.05228 18 7.55228 18 7C18 5.89543 18.8954 5 20 5C21.1046 5 22 5.89543 22 7C22 8.10457 21.1046 9 20 9C19.9441 9 19.8887 8.9977 19.8339 8.9932L19 19C19 20.1046 18.1046 21 17 21H7C5.89543 21 5 20.1046 5 19L4.1661 8.9932C4.11133 8.9977 4.05593 9 4 9C2.89543 9 2 8.10457 2 7C2 5.89543 2.89543 5 4 5C5.10457 5 6 5.89543 6 7C6 7.55228 5.77614 8.05228 5.41421 8.41421L7.44654 10.4465L8.89019 11.8902C8.9775 11.9325 9.03514 11.9063 9.05453 11.8546L9.77139 9.94296L11.2976 5.87317C10.5395 5.58876 10 4.85739 10 4C10 2.89543 10.8954 2 12 2C13.1046 2 14 2.89543 14 4ZM6.84027 17L6.44651 12.2749L7.47597 13.3044C7.68795 13.5164 7.94285 13.6805 8.22354 13.7858C9.30949 14.193 10.52 13.6428 10.9272 12.5568L12 9.696L13.0728 12.5568C13.1781 12.8375 13.3422 13.0924 13.5542 13.3044C14.3743 14.1245 15.7039 14.1245 16.524 13.3044L17.5535 12.2749L17.1597 17H6.84027Z"}))};e.default=f},624,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),v=t(r(d[4])),c=function(t){return f.default.createElement(v.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(v.Path,{d:"M12.891 16.313l-1.875-1.922v3.797zM11.016 5.813v3.797l1.875-1.922zM15.703 7.688l-4.313 4.313 4.313 4.313-5.719 5.672h-0.984v-7.594l-4.594 4.594-1.406-1.406 5.578-5.578-5.578-5.578 1.406-1.406 4.594 4.594v-7.594h0.984zM19.547 6.703c0.938 1.5 1.453 3.328 1.453 5.203 0 1.969-0.563 3.75-1.547 5.297l-1.172-1.172c0.609-1.219 0.984-2.578 0.984-4.031s-0.375-2.813-0.984-4.031zM14.25 12l2.297-2.297c0.281 0.703 0.469 1.5 0.469 2.297s-0.188 1.641-0.469 2.344z"}))};e.default=c},625,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(f.Path,{d:"M15 12c0-1.641-1.359-3-3-3v-2.016c2.766 0 5.016 2.25 5.016 5.016h-2.016zM18.984 12c0-3.891-3.094-6.984-6.984-6.984v-2.016c4.969 0 9 4.031 9 9h-2.016zM20.016 15.516c0.563 0 0.984 0.422 0.984 0.984v3.516c0 0.563-0.422 0.984-0.984 0.984-9.375 0-17.016-7.641-17.016-17.016 0-0.563 0.422-0.984 0.984-0.984h3.516c0.563 0 0.984 0.422 0.984 0.984 0 1.266 0.188 2.438 0.563 3.563 0.094 0.328 0.047 0.75-0.234 1.031l-2.203 2.203c1.453 2.859 3.797 5.156 6.609 6.609l2.203-2.203c0.281-0.281 0.703-0.328 1.031-0.234 1.125 0.375 2.297 0.563 3.563 0.563z"}))};e.default=n},626,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=u(r(d[2])),c=u(r(d[3])),l=t(r(d[4])),f=function(t){return c.default.createElement(l.default,(0,v.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(l.Path,{d:"M12 0.984c4.969 0 9 4.031 9 9v7.031c0 1.641-1.359 3-3 3h-3v-8.016h3.984v-2.016c0-3.891-3.094-6.984-6.984-6.984s-6.984 3.094-6.984 6.984v2.016h3.984v8.016h-3c-1.641 0-3-1.359-3-3v-7.031c0-4.969 4.031-9 9-9z"}))};e.default=f},627,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=c(r(d[2])),l=c(r(d[3])),v=t(r(d[4])),f=function(t){return l.default.createElement(v.default,(0,u.default)({width:28,height:28,viewBox:"0 0 28 28"},t),l.default.createElement(v.Path,{d:"M26 10c1.109 0 2 0.891 2 2s-0.891 2-2 2v6c0 1.094-0.906 2-2 2-2.781-2.312-7.266-5.484-12.688-5.938-1.859 0.625-2.5 2.797-1.281 4.047-1.094 1.797 0.313 3.063 1.969 4.359-0.969 1.906-5 1.937-6.438 0.609-0.906-2.781-2.25-5.563-1.156-9.078h-1.906c-1.375 0-2.5-1.125-2.5-2.5v-3c0-1.375 1.125-2.5 2.5-2.5h7.5c6 0 11-3.5 14-6 1.094 0 2 0.906 2 2v6zM24 19.437v-14.906c-4.078 3.125-8.031 4.922-12 5.359v4.219c3.969 0.438 7.922 2.203 12 5.328z"}))};e.default=f},628,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M11 13.3705V5C11 4.44772 11.4477 4 12 4C12.5523 4 13 4.44772 13 5V13.4667L15.631 10.5433C16.0005 10.1328 16.6328 10.0995 17.0433 10.469C17.4538 10.8384 17.4871 11.4707 17.1176 11.8812L12.1064 17.4492C12.0727 17.4867 12.0139 17.4867 11.9802 17.4492L6.96897 11.8812C6.59951 11.4707 6.63278 10.8384 7.04329 10.469C7.4538 10.0995 8.08609 10.1328 8.45555 10.5433L11 13.3705ZM20 15C20 14.4477 20.4477 14 21 14C21.5523 14 22 14.4477 22 15V21C22 21.5523 21.5523 22 21 22H3C2.96548 22 2.93137 21.9983 2.89776 21.9948C2.3935 21.9436 2 21.5178 2 21V15C2 14.4477 2.44772 14 3 14C3.55228 14 4 14.4477 4 15V20H20V15Z",fill:"#A4B8D1"}))};e.default=n},629,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(c.Path,{d:"m 5.6875,10.59375 h 12.625 c 0.779062,0 1.40625,0.627187 1.40625,1.40625 0,0.779062 -0.627188,1.40625 -1.40625,1.40625 H 5.6875 c -0.7790625,0 -1.40625,-0.627188 -1.40625,-1.40625 0,-0.779063 0.6271875,-1.40625 1.40625,-1.40625 z",id:"rect3711"}))};e.default=n},630,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:18,height:18,viewBox:"0 0 18 18",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M3.75 7.5H5.25H12.75H14.25V15H3.75V7.5ZM14.25 6H12.75V5.25C12.75 3.17893 11.0711 1.5 9 1.5C6.92893 1.5 5.25 3.17893 5.25 5.25V6H3.75C2.92157 6 2.25 6.67157 2.25 7.5V15C2.25 15.8284 2.92157 16.5 3.75 16.5H14.25C15.0784 16.5 15.75 15.8284 15.75 15V7.5C15.75 6.67157 15.0784 6 14.25 6ZM9.72642 11.8127C10.1877 11.5568 10.5 11.0649 10.5 10.5C10.5 9.67157 9.82843 9 9 9C8.17157 9 7.5 9.67157 7.5 10.5C7.5 11.0649 7.81226 11.5568 8.27358 11.8127C8.25819 11.8726 8.25 11.9353 8.25 12V12.75C8.25 13.1642 8.58579 13.5 9 13.5C9.41421 13.5 9.75 13.1642 9.75 12.75V12C9.75 11.9353 9.74181 11.8726 9.72642 11.8127ZM9 3C10.2426 3 11.25 4.00736 11.25 5.25V6H6.75V5.25C6.75 4.00736 7.75736 3 9 3Z",fill:"white"}))};e.default=n},631,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),c=function(t){return f.default.createElement(n.default,(0,u.default)({height:24,viewBox:"0 0 24 24",width:24},t),f.default.createElement(n.Path,{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),f.default.createElement(n.Path,{d:"M0 0h24v24H0z",fill:"none"}))};e.default=c},632,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M4 4H20C21.1046 4 22 4.89543 22 6V18C22 19.1046 21.1046 20 20 20H4C2.89543 20 2 19.1046 2 18V6C2 4.89543 2.89543 4 4 4ZM4 8V18H20V8L12 12L4 8ZM20 6H4L12 10L20 6Z",fill:"#A4B8D1"}))};e.default=o},633,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),u=v(r(d[3])),l=t(r(d[4])),c=function(t){return u.default.createElement(l.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(l.Path,{d:"M14.016 14.016v1.969h-7.031v-1.969h7.031zM18.984 18.984v-10.969h-13.969v10.969h13.969zM18.984 3c1.078 0 2.016 0.938 2.016 2.016v13.969c0 1.078-0.938 2.016-2.016 2.016h-13.969c-1.125 0-2.016-0.938-2.016-2.016v-13.969c0-1.078 0.891-2.016 2.016-2.016h0.984v-2.016h2.016v2.016h7.969v-2.016h2.016v2.016h0.984zM17.016 9.984v2.016h-10.031v-2.016h10.031z"}))};e.default=c},634,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:16,height:16,viewBox:"0 0 16 16",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M1.33331 8.00004C1.33331 11.6819 4.31808 14.6667 7.99998 14.6667C11.6819 14.6667 14.6666 11.6819 14.6666 8.00004C14.6666 4.31814 11.6819 1.33337 7.99998 1.33337C4.31808 1.33337 1.33331 4.31814 1.33331 8.00004ZM13.3333 8.00005C13.3333 10.9456 10.9455 13.3334 7.99998 13.3334C5.05446 13.3334 2.66665 10.9456 2.66665 8.00005C2.66665 5.05453 5.05446 2.66672 7.99998 2.66672C10.9455 2.66672 13.3333 5.05453 13.3333 8.00005ZM7.33331 4.66673C7.33331 4.29854 7.63179 4.00006 7.99998 4.00006C8.36817 4.00006 8.66665 4.29854 8.66665 4.66673V8.00006C8.66665 8.36825 8.36817 8.66673 7.99998 8.66673C7.63179 8.66673 7.33331 8.36825 7.33331 8.00006V4.66673ZM7.99998 10C7.63179 10 7.33331 10.2985 7.33331 10.6667C7.33331 11.0349 7.63179 11.3334 7.99998 11.3334C8.36817 11.3334 8.66665 11.0349 8.66665 10.6667C8.66665 10.2985 8.36817 10 7.99998 10Z",fill:"white"}))};e.default=n},635,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),C=l(r(d[3])),f=t(r(d[4])),n=function(t){return C.default.createElement(f.default,(0,u.default)({width:16,height:16,viewBox:"0 0 16 16"},t),C.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M8 14.6667C4.3181 14.6667 1.33333 11.682 1.33333 8.00007C1.33333 4.31817 4.3181 1.3334 8 1.3334C11.6819 1.3334 14.6667 4.31817 14.6667 8.00007C14.6667 11.682 11.6819 14.6667 8 14.6667ZM7.33333 4.66676C7.33333 4.29857 7.6318 4.00009 8 4.00009C8.36819 4.00009 8.66666 4.29857 8.66666 4.66676V8.00009C8.66666 8.36828 8.36819 8.66676 8 8.66676C7.6318 8.66676 7.33333 8.36828 7.33333 8.00009V4.66676ZM8 10.0001C7.63181 10.0001 7.33333 10.2985 7.33333 10.6667C7.33333 11.0349 7.63181 11.3334 8 11.3334C8.36818 11.3334 8.66666 11.0349 8.66666 10.6667C8.66666 10.2985 8.36818 10.0001 8 10.0001Z"}))};e.default=n},636,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),u=v(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,h.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M21.313 10.688h4v2.625h-6.625v-6.625h2.625v4zM18.688 25.313v-6.625h6.625v2.625h-4v4h-2.625zM10.688 10.688v-4h2.625v6.625h-6.625v-2.625h4zM6.688 21.313v-2.625h6.625v6.625h-2.625v-4h-4z"}))};e.default=f},637,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),f=t(r(d[4])),v=function(t){return u.default.createElement(f.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M1.333 28h5.333v-16h-5.333v16zM30.667 13.333c0-1.467-1.2-2.667-2.667-2.667h-8.413l1.267-6.093 0.040-0.427c0-0.547-0.227-1.053-0.587-1.413l-1.413-1.4-8.773 8.787c-0.493 0.48-0.787 1.147-0.787 1.88v13.333c0 1.467 1.2 2.667 2.667 2.667h12c1.107 0 2.053-0.667 2.453-1.627l4.027-9.4c0.12-0.307 0.187-0.627 0.187-0.973v-2.547l-0.013-0.013 0.013-0.107z"}))};e.default=v},638,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),u=v(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,h.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M18.688 6.688h6.625v6.625h-2.625v-4h-4v-2.625zM22.688 22.688v-4h2.625v6.625h-6.625v-2.625h4zM6.688 13.313v-6.625h6.625v2.625h-4v4h-2.625zM9.313 18.688v4h4v2.625h-6.625v-6.625h2.625z"}))};e.default=f},639,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M20.2359 10.3544H19.56V10.32H12V13.68H16.7479C16.054 15.6356 14.1935 17.04 12 17.04C9.21583 17.04 6.95998 14.7841 6.95998 12C6.95998 9.21583 9.21583 6.95998 12 6.95998C13.2846 6.95998 14.4543 7.44396 15.3436 8.23638L17.7192 5.86076C16.2197 4.46294 14.2132 3.59998 12 3.59998C7.36029 3.59998 3.59998 7.36029 3.59998 12C3.59998 16.6397 7.36029 20.4 12 20.4C16.6397 20.4 20.4 16.6397 20.4 12C20.4 11.4372 20.3426 10.8876 20.2359 10.3544Z",fill:"#A4B8D1"}))};e.default=o},640,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M16 12c-2.125 0-4.188 0.313-6.125 0.938v4.125c0 0.5-0.313 1.063-0.75 1.25-1.313 0.625-2.5 1.438-3.563 2.438-0.25 0.25-0.563 0.375-0.938 0.375s-0.688-0.125-0.938-0.375l-3.313-3.313c-0.25-0.25-0.375-0.563-0.375-0.938s0.125-0.688 0.375-0.938c4.063-3.875 9.563-6.25 15.625-6.25s11.563 2.375 15.625 6.25c0.25 0.25 0.375 0.563 0.375 0.938s-0.125 0.688-0.375 0.938l-3.313 3.313c-0.25 0.25-0.563 0.375-0.938 0.375s-0.688-0.125-0.938-0.375c-1.063-1-2.25-1.813-3.563-2.438-0.438-0.188-0.75-0.625-0.75-1.188v-4.125c-1.938-0.625-4-1-6.125-1z"}))};e.default=n},641,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(f.Path,{fill:"none",d:"M0 0h24v24H0z"}),c.default.createElement(f.Path,{d:"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"}))};e.default=n},642,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),v=t(r(d[4])),h=function(t){return f.default.createElement(v.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(v.Path,{d:"M16 2.667c-7.36 0-13.333 5.973-13.333 13.333s5.973 13.333 13.333 13.333 13.333-5.973 13.333-13.333-5.973-13.333-13.333-13.333zM17.333 22.667h-2.667v-8h2.667v8zM17.333 12h-2.667v-2.667h2.667v2.667z"}))};e.default=h},643,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M14 7C14 8.10457 13.1046 9 12 9C10.8954 9 10 8.10457 10 7C10 5.89543 10.8954 5 12 5C13.1046 5 14 5.89543 14 7ZM8 7C8 9.20914 9.79086 11 12 11C14.2091 11 16 9.20914 16 7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7ZM12 12C5.98633 12 4 14.25 4 18.75C4 20.25 4.66667 21 6 21H14.7578C15.565 22.206 16.9398 23 18.5 23C20.9853 23 23 20.9853 23 18.5C23 16.0381 21.0231 14.038 18.5701 14.0005C17.3541 12.6668 15.2739 12 12 12ZM16.1639 14.6531C15.2365 14.1909 13.8943 14 12 14C7.30232 14 6 15.1737 6 18.75C6 18.8592 6.00376 18.9414 6.00693 19H14.0275C14.0093 18.8358 14 18.669 14 18.5C14 16.8702 14.8665 15.4427 16.1639 14.6531ZM19 18H21V19H19V21H18V19H16V18H18V16H19V18Z",fill:"white"}))};e.default=n},644,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),h=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 6.688l8.875 13.313h-17.75zM6.688 22.688h18.625v2.625h-18.625v-2.625z"}))};e.default=h},645,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),v=t(r(d[4])),f=function(t){return u.default.createElement(v.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),u.default.createElement(v.Path,{d:"M17.906 17.391c1.313-1.406 2.109-3.328 2.109-5.391 0-3.328-2.063-6.234-5.016-7.406v0.422c0 1.078-0.938 1.969-2.016 1.969h-1.969v2.016c0 0.563-0.469 0.984-1.031 0.984h-1.969v2.016h6c0.563 0 0.984 0.422 0.984 0.984v3h0.984c0.891 0 1.641 0.609 1.922 1.406zM11.016 19.922v-1.922c-1.078 0-2.016-0.938-2.016-2.016v-0.984l-4.781-4.781c-0.141 0.563-0.234 1.172-0.234 1.781 0 4.078 3.094 7.453 7.031 7.922zM12 2.016c5.531 0 9.984 4.453 9.984 9.984s-4.453 9.984-9.984 9.984-9.984-4.453-9.984-9.984 4.453-9.984 9.984-9.984z"}))};e.default=f},646,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),f=t(r(d[4])),h=function(t){return v.default.createElement(f.default,(0,u.default)({height:24,viewBox:"0 0 24 24",width:24},t),v.default.createElement(f.Path,{d:"M11 11h-1v2h2v-1l9.73 9.73L20.46 23 14 16.54V21H3v-2h2V7.54l-4-4 1.27-1.27L11 11zm3 .49L5.51 3H14v1h5v12.49l-2-2V6h-3v5.49z"}))};e.default=h},647,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=h(r(d[2])),u=h(r(d[3])),l=t(r(d[4])),f=function(t){return u.default.createElement(l.default,(0,v.default)({height:24,viewBox:"0 0 24 24",width:24},t),u.default.createElement(l.Path,{d:"M14 6v15H3v-2h2V3h9v1h5v15h2v2h-4V6h-3zm-4 5v2h2v-2h-2z"}))};e.default=f},648,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=u(r(d[2])),h=u(r(d[3])),l=t(r(d[4])),f=function(t){return h.default.createElement(l.default,(0,v.default)({width:24,height:24,viewBox:"0 0 24 24"},t),h.default.createElement(l.Path,{d:"M3 6h18v2.016h-18v-2.016zM3 12.984v-1.969h18v1.969h-18zM3 18v-2.016h18v2.016h-18z"}))};e.default=f},649,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M22.125 11.438l1.875 1.875-8 8-8-8 1.875-1.875 6.125 6.125z"}))};e.default=o},650,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),f=u(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,l.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(c.Path,{d:"M12 15.984c1.078 0 2.016 0.938 2.016 2.016s-0.938 2.016-2.016 2.016-2.016-0.938-2.016-2.016 0.938-2.016 2.016-2.016zM12 9.984c1.078 0 2.016 0.938 2.016 2.016s-0.938 2.016-2.016 2.016-2.016-0.938-2.016-2.016 0.938-2.016 2.016-2.016zM12 8.016c-1.078 0-2.016-0.938-2.016-2.016s0.938-2.016 2.016-2.016 2.016 0.938 2.016 2.016-0.938 2.016-2.016 2.016z"}))};e.default=n},651,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 10.688l8 8-1.875 1.875-6.125-6.125-6.125 6.125-1.875-1.875z"}))};e.default=o},652,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),h=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"}),f.default.createElement(n.Path,{d:"M0 0h24v24H0z",fill:"none"}))};e.default=h},653,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=h(r(d[2])),c=h(r(d[3])),u=t(r(d[4])),f=function(t){return c.default.createElement(u.default,(0,l.default)({width:38,height:12,viewBox:"0 0 38 12",fill:"#5E6D7A"},t),c.default.createElement(u.Rect,{width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:5,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:10,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:15,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:20,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:25,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:30,width:3,height:12,rx:1}),c.default.createElement(u.Rect,{x:35,width:3,height:12,rx:1}))};e.default=f},654,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),v=t(r(d[4])),f=function(t){return u.default.createElement(v.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(v.Path,{d:"M5.688 4l22.313 22.313-1.688 1.688-5.563-5.563c-1 0.625-2.25 1-3.438 1.188v4.375h-2.625v-4.375c-4.375-0.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75 1.063 0 2.125-0.25 3.063-0.688l-2.188-2.188c-0.25 0.063-0.563 0.125-0.875 0.125-2.188 0-4-1.813-4-4v-1l-8-8zM20 14.875l-8-7.938v-0.25c0-2.188 1.813-4 4-4s4 1.813 4 4v8.188zM25.313 14.688c0 1.563-0.438 3.063-1.188 4.375l-1.625-1.688c0.375-0.813 0.563-1.688 0.563-2.688h2.25z"}))};e.default=f},655,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=c(r(d[2])),l=c(r(d[3])),f=t(r(d[4])),v=function(t){return l.default.createElement(f.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),l.default.createElement(f.Path,{d:"M23.063 14.688h2.25c0 4.563-3.625 8.313-8 8.938v4.375h-2.625v-4.375c-4.375-0.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75s7.063-2.75 7.063-6.75zM16 18.688c-2.188 0-4-1.813-4-4v-8c0-2.188 1.813-4 4-4s4 1.813 4 4v8c0 2.188-1.813 4-4 4z"}))};e.default=v},656,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var C=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[2])),u=l(r(d[3])),f=C(r(d[4])),n=function(C){return u.default.createElement(f.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},C),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16 6C16 3.79086 14.2091 2 12 2C9.79086 2 8 3.79086 8 6V12C8 13.8666 9.27853 15.4346 11.0076 15.8759C11.0026 15.9166 11 15.958 11 16V17.917C8.16229 17.441 6 14.973 6 12C6 11.4477 5.55228 11 5 11C4.44772 11 4 11.4477 4 12C4 16.0796 7.05369 19.446 11 19.9381V21C11 21.5523 11.4477 22 12 22C12.5523 22 13 21.5523 13 21V19.9381C16.9463 19.446 20 16.0796 20 12C20 11.4477 19.5523 11 19 11C18.4477 11 18 11.4477 18 12C18 14.973 15.8377 17.441 13 17.917V16C13 15.958 12.9974 15.9166 12.9924 15.8759C14.7215 15.4346 16 13.8666 16 12V6ZM12 4C10.8954 4 10 4.89543 10 6V12C10 13.1046 10.8954 14 12 14C13.1046 14 14 13.1046 14 12V6C14 4.89543 13.1046 4 12 4Z",fill:"#A4B8D1"}))};e.default=n},657,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 20.563l5 3-1.313-5.688 4.438-3.875-5.875-0.5-2.25-5.375-2.25 5.375-5.875 0.5 4.438 3.875-1.313 5.688zM29.313 12.313l-7.25 6.313 2.188 9.375-8.25-5-8.25 5 2.188-9.375-7.25-6.313 9.563-0.813 3.75-8.813 3.75 8.813z"}))};e.default=o},658,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var C=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[2])),L=l(r(d[3])),u=C(r(d[4])),f=function(C){return L.default.createElement(u.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},C),L.default.createElement(u.G,{clipPath:"url(#clip0)"},L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M6 13.078V15C6 16.3999 6.9589 17.5759 8.25572 17.907C8.25195 17.9374 8.25 17.9685 8.25 18V19.4378C6.12171 19.0807 4.5 17.2297 4.5 15C4.5 14.5858 4.16421 14.25 3.75 14.25C3.33579 14.25 3 14.5858 3 15C3 18.0597 5.29027 20.5845 8.25 20.9536V21.75C8.25 22.1642 8.58579 22.5 9 22.5C9.41421 22.5 9.75 22.1642 9.75 21.75V20.9536C10.8412 20.8175 11.8415 20.3884 12.6694 19.7475L15.1986 22.2766C15.4964 22.5744 15.9791 22.5745 16.2768 22.2768C16.5745 21.9791 16.5744 21.4964 16.2766 21.1986L13.7475 18.6694C13.7502 18.6659 13.753 18.6623 13.7557 18.6588L12.6831 17.5861C12.6805 17.5898 12.6779 17.5935 12.6753 17.5972L11.5911 16.513C11.5934 16.5091 11.5957 16.5051 11.598 16.5011L10.4566 15.3596C10.4554 15.3647 10.4541 15.3697 10.4528 15.3748L7.5 12.422V12.403L6 10.903V10.922L2.80143 7.72339C2.50364 7.4256 2.02091 7.42553 1.72322 7.72322C1.42553 8.02091 1.4256 8.50364 1.72339 8.80143L6 13.078ZM7.5 14.578V15C7.5 15.8284 8.17157 16.5 9 16.5C9.1294 16.5 9.25498 16.4836 9.37476 16.4528L7.5 14.578ZM10.513 17.5911C10.2756 17.73 10.0175 17.8372 9.74428 17.907C9.74805 17.9374 9.75 17.9685 9.75 18V19.4378C10.4295 19.3238 11.0573 19.0575 11.5972 18.6753L10.513 17.5911ZM12 14.747L10.5 13.247V10.5C10.5 9.67157 9.82843 9 9 9C8.25144 9 7.63095 9.54832 7.51827 10.2652L6.34845 9.09541C6.85223 8.14635 7.85064 7.5 9 7.5C10.6569 7.5 12 8.84315 12 10.5V14.747ZM13.3623 16.1092L14.5462 17.2932C14.8386 16.5867 15 15.8122 15 15C15 14.5858 14.6642 14.25 14.25 14.25C13.8358 14.25 13.5 14.5858 13.5 15C13.5 15.3828 13.4522 15.7544 13.3623 16.1092Z",fill:"#A4B8D1"}),L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16 4.71869V6C16 6.93329 16.6393 7.71727 17.5038 7.93797C17.5013 7.95829 17.5 7.97899 17.5 8V8.95852C16.0811 8.72048 15 7.4865 15 6C15 5.72386 14.7761 5.5 14.5 5.5C14.2239 5.5 14 5.72386 14 6C14 8.03981 15.5268 9.723 17.5 9.96905V10.5C17.5 10.7761 17.7239 11 18 11C18.2761 11 18.5 10.7761 18.5 10.5V9.96905C19.2275 9.87834 19.8943 9.59227 20.4463 9.16499L22.1324 10.8511C22.3309 11.0496 22.6527 11.0496 22.8512 10.8512C23.0496 10.6527 23.0496 10.3309 22.8511 10.1324L21.165 8.4463C21.1668 8.44393 21.1687 8.44155 21.1705 8.43918L20.4554 7.7241C20.4537 7.72656 20.4519 7.72903 20.4502 7.73149L19.7274 7.00869C19.7289 7.00603 19.7305 7.00338 19.732 7.00072L18.9711 6.23977C18.9702 6.24313 18.9694 6.24649 18.9685 6.24984L17 4.28131V4.26869L16 3.26869V3.28131L13.8676 1.14893C13.6691 0.950402 13.3473 0.950351 13.1488 1.14881C12.9504 1.34727 12.9504 1.6691 13.1489 1.86762L16 4.71869ZM17 5.71869V6C17 6.55228 17.4477 7 18 7C18.0863 7 18.17 6.98908 18.2498 6.96854L17 5.71869ZM19.0087 7.72738C18.8504 7.81999 18.6783 7.89148 18.4962 7.93797C18.4987 7.95829 18.5 7.97899 18.5 8V8.95852C18.953 8.88252 19.3715 8.70502 19.7315 8.45019L19.0087 7.72738ZM20 5.83131L19 4.83131V3C19 2.44772 18.5523 2 18 2C17.501 2 17.0873 2.36555 17.0122 2.84348L16.2323 2.06361C16.5682 1.4309 17.2338 1 18 1C19.1046 1 20 1.89543 20 3V5.83131ZM20.9082 6.73948L21.6975 7.52877C21.8924 7.05778 22 6.54145 22 6C22 5.72386 21.7761 5.5 21.5 5.5C21.2239 5.5 21 5.72386 21 6C21 6.25519 20.9681 6.50294 20.9082 6.73948Z",fill:"#A4B8D1"})),L.default.createElement(u.Defs,null,L.default.createElement(u.ClipPath,{id:"clip0"},L.default.createElement(u.Rect,{width:24,height:24,fill:"white"}))))};e.default=f},659,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var C=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[2])),L=l(r(d[3])),u=C(r(d[4])),f=function(C){return L.default.createElement(u.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},C),L.default.createElement(u.G,{clipPath:"url(#clip0)"},L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M6 13.078V15C6 16.3999 6.9589 17.5759 8.25572 17.907C8.25195 17.9374 8.25 17.9685 8.25 18V19.4378C6.12171 19.0807 4.5 17.2297 4.5 15C4.5 14.5858 4.16421 14.25 3.75 14.25C3.33579 14.25 3 14.5858 3 15C3 18.0597 5.29027 20.5845 8.25 20.9536V21.75C8.25 22.1642 8.58579 22.5 9 22.5C9.41421 22.5 9.75 22.1642 9.75 21.75V20.9536C10.8412 20.8175 11.8415 20.3884 12.6694 19.7475L15.1986 22.2766C15.4964 22.5744 15.9791 22.5745 16.2768 22.2768C16.5745 21.9791 16.5744 21.4964 16.2766 21.1986L13.7475 18.6694C13.7502 18.6659 13.753 18.6623 13.7557 18.6588L12.6831 17.5861C12.6805 17.5898 12.6779 17.5935 12.6753 17.5972L11.5911 16.513C11.5934 16.5091 11.5957 16.5051 11.598 16.5011L10.4566 15.3596C10.4554 15.3647 10.4541 15.3697 10.4528 15.3748L7.5 12.422V12.403L6 10.903V10.922L2.80143 7.72339C2.50364 7.4256 2.02091 7.42553 1.72322 7.72322C1.42553 8.02091 1.4256 8.50364 1.72339 8.80143L6 13.078ZM7.5 14.578V15C7.5 15.8284 8.17157 16.5 9 16.5C9.1294 16.5 9.25498 16.4836 9.37476 16.4528L7.5 14.578ZM10.513 17.5911C10.2756 17.73 10.0175 17.8372 9.74428 17.907C9.74805 17.9374 9.75 17.9685 9.75 18V19.4378C10.4295 19.3238 11.0573 19.0575 11.5972 18.6753L10.513 17.5911ZM12 14.747L10.5 13.247V10.5C10.5 9.67157 9.82843 9 9 9C8.25144 9 7.63095 9.54832 7.51827 10.2652L6.34845 9.09541C6.85223 8.14635 7.85064 7.5 9 7.5C10.6569 7.5 12 8.84315 12 10.5V14.747ZM13.3623 16.1092L14.5462 17.2932C14.8386 16.5867 15 15.8122 15 15C15 14.5858 14.6642 14.25 14.25 14.25C13.8358 14.25 13.5 14.5858 13.5 15C13.5 15.3828 13.4522 15.7544 13.3623 16.1092Z",fill:"white"}),L.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M16 4.71869V6C16 6.93329 16.6393 7.71727 17.5038 7.93797C17.5013 7.95829 17.5 7.97899 17.5 8V8.95852C16.0811 8.72048 15 7.4865 15 6C15 5.72386 14.7761 5.5 14.5 5.5C14.2239 5.5 14 5.72386 14 6C14 8.03981 15.5268 9.723 17.5 9.96905V10.5C17.5 10.7761 17.7239 11 18 11C18.2761 11 18.5 10.7761 18.5 10.5V9.96905C19.2275 9.87834 19.8943 9.59227 20.4463 9.16499L22.1324 10.8511C22.3309 11.0496 22.6527 11.0496 22.8512 10.8512C23.0496 10.6527 23.0496 10.3309 22.8511 10.1324L21.165 8.4463C21.1668 8.44393 21.1687 8.44155 21.1705 8.43918L20.4554 7.7241C20.4537 7.72656 20.4519 7.72903 20.4502 7.73149L19.7274 7.00869C19.7289 7.00603 19.7305 7.00338 19.732 7.00072L18.9711 6.23977C18.9702 6.24313 18.9694 6.24649 18.9685 6.24984L17 4.28131V4.26869L16 3.26869V3.28131L13.8676 1.14893C13.6691 0.950402 13.3473 0.950351 13.1488 1.14881C12.9504 1.34727 12.9504 1.6691 13.1489 1.86762L16 4.71869ZM17 5.71869V6C17 6.55228 17.4477 7 18 7C18.0863 7 18.17 6.98908 18.2498 6.96854L17 5.71869ZM19.0087 7.72738C18.8504 7.81999 18.6783 7.89148 18.4962 7.93797C18.4987 7.95829 18.5 7.97899 18.5 8V8.95852C18.953 8.88252 19.3715 8.70502 19.7315 8.45019L19.0087 7.72738ZM20 5.83131L19 4.83131V3C19 2.44772 18.5523 2 18 2C17.501 2 17.0873 2.36555 17.0122 2.84348L16.2323 2.06361C16.5682 1.4309 17.2338 1 18 1C19.1046 1 20 1.89543 20 3V5.83131ZM20.9082 6.73948L21.6975 7.52877C21.8924 7.05778 22 6.54145 22 6C22 5.72386 21.7761 5.5 21.5 5.5C21.2239 5.5 21 5.72386 21 6C21 6.25519 20.9681 6.50294 20.9082 6.73948Z",fill:"white"})),L.default.createElement(u.Defs,null,L.default.createElement(u.ClipPath,{id:"clip0"},L.default.createElement(u.Rect,{width:24,height:24,fill:"white"}))))};e.default=f},660,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M9.984 6l6 6-6 6-1.406-1.406 4.594-4.594-4.594-4.594z"}))};e.default=o},661,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),l=v(r(d[3])),u=t(r(d[4])),f=function(t){return l.default.createElement(u.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},t),l.default.createElement(u.Path,{d:"M14.016 3h6.984v6.984h-2.016v-3.563l-9.797 9.797-1.406-1.406 9.797-9.797h-3.563v-2.016zM18.984 18.984v-6.984h2.016v6.984c0 1.078-0.938 2.016-2.016 2.016h-13.969c-1.125 0-2.016-0.938-2.016-2.016v-13.969c0-1.078 0.891-2.016 2.016-2.016h6.984v2.016h-6.984v13.969h13.969z"}))};e.default=f},662,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),f=t(r(d[3])),n=l(r(d[4])),o=function(l){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),f.default.createElement(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M3 6L14.0138 2L20.0213 3.5V20.5L14.0138 22L3 18L14.0138 19.5V5L7.00501 6.5V16.5L3 18V6Z",fill:"#A4B8D1"}))};e.default=o},663,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(f.Path,{d:"M6.609 10.781c1.453 2.813 3.797 5.156 6.609 6.609l2.203-2.203c0.281-0.281 0.703-0.375 1.031-0.234 1.125 0.375 2.344 0.563 3.563 0.563 0.563 0 0.984 0.422 0.984 0.984v3.516c0 0.563-0.422 0.984-0.984 0.984-9.375 0-17.016-7.641-17.016-17.016 0-0.563 0.422-0.984 0.984-0.984h3.516c0.563 0 0.984 0.422 0.984 0.984 0 1.266 0.188 2.438 0.563 3.563 0.094 0.328 0.047 0.75-0.234 1.031z"}))};e.default=n},664,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),h=t(r(d[4])),f=function(t){return v.default.createElement(h.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),v.default.createElement(h.Path,{d:"M21 19.031v-14.063h-18v14.063h18zM21 3q0.797 0 1.406 0.609t0.609 1.406v13.969q0 0.797-0.609 1.406t-1.406 0.609h-18q-0.797 0-1.406-0.609t-0.609-1.406v-13.969q0-0.797 0.609-1.406t1.406-0.609h18zM14.016 15.984l-2.016 2.531-2.016-2.531h4.031zM6 9.984v4.031l-2.484-2.016zM18 9.984l2.484 2.016-2.484 2.016v-4.031zM12 5.484l2.016 2.531h-4.031z"}))};e.default=f},665,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=h(r(d[2])),u=h(r(d[3])),v=t(r(d[4])),c=function(t){return u.default.createElement(v.default,(0,l.default)({width:34,height:32,viewBox:"0 0 34 32"},t),u.default.createElement(v.Path,{d:"M29.765 0.154h-25.584c-2.275 0-4.131 1.895-4.131 4.224v23.46c0 2.327 1.855 4.222 4.131 4.222h25.584c2.279 0 4.135-1.895 4.135-4.222v-23.46c0-2.329-1.856-4.224-4.135-4.224zM29.573 27.636h-25.192v-23.057h25.188l0.004 23.057z"}),u.default.createElement(v.Path,{d:"M21.43 8.921h6.778v17.711h-6.778v-17.711z"}),u.default.createElement(v.Path,{d:"M13.396 12.937h6.778v13.694h-6.778v-13.694z"}),u.default.createElement(v.Path,{d:"M5.386 16.954h6.755v9.677h-6.755v-9.677z"}))};e.default=c},666,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=v(r(d[2])),l=v(r(d[3])),u=t(r(d[4])),f=function(t){return l.default.createElement(u.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),l.default.createElement(u.Path,{d:"M30.688 7.313v19.375c0 2.938-2.438 5.313-5.375 5.313h-9.688c-1.438 0-2.813-0.563-3.813-1.563l-10.5-10.688s1.688-1.625 1.75-1.625c0.313-0.25 0.688-0.375 1.063-0.375 0.313 0 0.563 0.063 0.813 0.188 0.063 0 5.75 3.25 5.75 3.25v-15.875c0-1.125 0.875-2 2-2s2 0.875 2 2v9.375h1.313v-12.688c0-1.125 0.875-2 2-2s2 0.875 2 2v12.688h1.313v-11.375c0-1.125 0.875-2 2-2s2 0.875 2 2v11.375h1.375v-7.375c0-1.125 0.875-2 2-2s2 0.875 2 2z"}))};e.default=f},667,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var h=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=t(r(d[2])),c=t(r(d[3])),l=h(r(d[4])),u=function(h){return c.default.createElement(l.default,(0,v.default)({width:32,height:32,viewBox:"0 0 32 32"},h),c.default.createElement(l.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM18.167 18.444h-3.456v-1.851h3.261v-1.26h-3.261v-1.777h3.456v-1.361h-5.052v7.61h5.052v-1.361zM23.087 20c1.839 0 3.181-1.134 3.313-2.779h-1.554c-0.153 0.838-0.84 1.376-1.754 1.376-1.205 0-1.95-0.997-1.95-2.6s0.745-2.595 1.945-2.595c0.909 0 1.601 0.575 1.754 1.45h1.554c-0.116-1.656-1.501-2.853-3.308-2.853-2.214 0-3.578 1.524-3.578 3.997 0 2.479 1.369 4.003 3.578 4.003zM7.196 17.047h1.305l1.422 2.758h1.807l-1.607-3.006c0.877-0.348 1.385-1.192 1.385-2.162 0-1.514-1.030-2.442-2.706-2.442h-3.202v7.61h1.596v-2.758zM7.196 13.482v2.341h1.4c0.803 0 1.274-0.432 1.274-1.165 0-0.722-0.497-1.176-1.289-1.176h-1.385z"}))};e.default=u},668,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,u.default)({width:22,height:28,viewBox:"0 0 22 28"},t),f.default.createElement(c.Path,{d:"M21.625 14.484l-20.75 11.531c-0.484 0.266-0.875 0.031-0.875-0.516v-23c0-0.547 0.391-0.781 0.875-0.516l20.75 11.531c0.484 0.266 0.484 0.703 0 0.969z"}))};e.default=n},669,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=u(r(d[2])),c=u(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,l.default)({width:24,height:28,viewBox:"0 0 24 28"},t),c.default.createElement(f.Path,{d:"M24 3v22c0 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-22c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z"}))};e.default=n},670,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),c=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"}),f.default.createElement(n.Path,{d:"M0 0h24v24H0z",fill:"none"}))};e.default=c},671,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),c=l(r(d[3])),f=t(r(d[4])),n=function(t){return c.default.createElement(f.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),c.default.createElement(f.Path,{d:"M12 8.016h1.5v4.219l3.516 2.109-0.75 1.219-4.266-2.578v-4.969zM12.984 3c4.969 0 9 4.031 9 9s-4.031 9-9 9c-2.484 0-4.688-0.984-6.328-2.625l1.406-1.453c1.266 1.266 3 2.063 4.922 2.063 3.891 0 7.031-3.094 7.031-6.984s-3.141-6.984-7.031-6.984-6.984 3.094-6.984 6.984h3l-4.031 4.031-0.094-0.141-3.891-3.891h3c0-4.969 4.031-9 9-9z"}))};e.default=n},672,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=c(r(d[2])),v=c(r(d[3])),h=t(r(d[4])),l=function(t){return v.default.createElement(h.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),v.default.createElement(h.Path,{d:"M24 26.688v-13.375h-16v13.375h16zM24 10.688c1.438 0 2.688 1.188 2.688 2.625v13.375c0 1.438-1.25 2.625-2.688 2.625h-16c-1.438 0-2.688-1.188-2.688-2.625v-13.375c0-1.438 1.25-2.625 2.688-2.625h12.125v-2.688c0-2.25-1.875-4.125-4.125-4.125s-4.125 1.875-4.125 4.125h-2.563c0-3.688 3-6.688 6.688-6.688s6.688 3 6.688 6.688v2.688h1.313zM16 22.688c-1.438 0-2.688-1.25-2.688-2.688s1.25-2.688 2.688-2.688 2.688 1.25 2.688 2.688-1.25 2.688-2.688 2.688z"}))};e.default=l},673,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=v(r(d[2])),u=v(r(d[3])),h=t(r(d[4])),l=function(t){return u.default.createElement(h.default,(0,c.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(h.Path,{d:"M24 26.688v-13.375h-16v13.375h16zM11.875 8v2.688h8.25v-2.688c0-2.25-1.875-4.125-4.125-4.125s-4.125 1.875-4.125 4.125zM24 10.688c1.438 0 2.688 1.188 2.688 2.625v13.375c0 1.438-1.25 2.625-2.688 2.625h-16c-1.438 0-2.688-1.188-2.688-2.625v-13.375c0-1.438 1.25-2.625 2.688-2.625h1.313v-2.688c0-3.688 3-6.688 6.688-6.688s6.688 3 6.688 6.688v2.688h1.313zM16 22.688c-1.438 0-2.688-1.25-2.688-2.688s1.25-2.688 2.688-2.688 2.688 1.25 2.688 2.688-1.25 2.688-2.688 2.688z"}))};e.default=l},674,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),f=t(r(d[4])),u=function(t){return o.default.createElement(f.default,(0,n.default)({width:24,height:25,viewBox:"0 0 24 25",fill:"none"},t),o.default.createElement(f.Path,{d:"M3.87597 3.00772L3 3.11722V4V13.6745C3 16.088 4.24334 18.3313 6.29001 19.6105L11.47 22.848L12 23.1792L12.53 22.848L17.71 19.6105C19.7567 18.3313 21 16.088 21 13.6745V4V3.11722L20.124 3.00772L12.124 2.00772L12 1.99222L11.876 2.00772L3.87597 3.00772Z",fill:"url(#paint0_linear)",stroke:"white",strokeWidth:2}),o.default.createElement(f.Path,{d:"M20 4V13.6745C20 15.7433 18.9343 17.6661 17.18 18.7625L12 22V3L20 4Z",fill:"url(#paint1_linear)"}),o.default.createElement(f.Defs,null,o.default.createElement(f.LinearGradient,{id:"paint0_linear",x1:11.8143,y1:4.14215,x2:11.8143,y2:23,gradientUnits:"userSpaceOnUse"},o.default.createElement(f.Stop,{stopColor:"#FFB800"}),o.default.createElement(f.Stop,{offset:1,stopColor:"#CF4B00"})),o.default.createElement(f.LinearGradient,{id:"paint1_linear",x1:11.8143,y1:4.14215,x2:11.8143,y2:23,gradientUnits:"userSpaceOnUse"},o.default.createElement(f.Stop,{stopColor:"#FF8A00"}),o.default.createElement(f.Stop,{offset:1,stopColor:"#A03B03"}))))};e.default=u},675,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),u=t(r(d[4])),f=function(t){return o.default.createElement(u.default,(0,n.default)({width:24,height:25,viewBox:"0 0 24 25",fill:"none"},t),o.default.createElement(u.Path,{d:"M3.87597 3.00772L3 3.11722V4V13.6745C3 16.088 4.24334 18.3313 6.29001 19.6105L11.47 22.848L12 23.1792L12.53 22.848L17.71 19.6105C19.7567 18.3313 21 16.088 21 13.6745V4V3.11722L20.124 3.00772L12.124 2.00772L12 1.99222L11.876 2.00772L3.87597 3.00772Z",fill:"url(#paint0_linear)",stroke:"white",strokeWidth:2}),o.default.createElement(u.Path,{d:"M20 4V13.6745C20 15.7433 18.9343 17.6661 17.18 18.7625L12 22V3L20 4Z",fill:"url(#paint1_linear)"}),o.default.createElement(u.Path,{d:"M9 11.4382L10.6848 13L15 9",stroke:"white",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}),o.default.createElement(u.Defs,null,o.default.createElement(u.LinearGradient,{id:"paint0_linear",x1:11.8143,y1:4.14215,x2:11.8143,y2:23,gradientUnits:"userSpaceOnUse"},o.default.createElement(u.Stop,{stopColor:"#76CF9C"}),o.default.createElement(u.Stop,{offset:1,stopColor:"#279255"})),o.default.createElement(u.LinearGradient,{id:"paint1_linear",x1:11.8143,y1:4.14215,x2:11.8143,y2:23,gradientUnits:"userSpaceOnUse"},o.default.createElement(u.Stop,{stopColor:"#31B76A"}),o.default.createElement(u.Stop,{offset:1,stopColor:"#18663A"}))))};e.default=f},676,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),c=t(r(d[4])),n=function(t){return f.default.createElement(c.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(c.Path,{d:"M9.516 14.016c2.484 0 4.5-2.016 4.5-4.5s-2.016-4.5-4.5-4.5-4.5 2.016-4.5 4.5 2.016 4.5 4.5 4.5zM15.516 14.016l4.969 4.969-1.5 1.5-4.969-4.969v-0.797l-0.281-0.281c-1.125 0.984-2.625 1.547-4.219 1.547-3.609 0-6.516-2.859-6.516-6.469s2.906-6.516 6.516-6.516 6.469 2.906 6.469 6.516c0 1.594-0.563 3.094-1.547 4.219l0.281 0.281h0.797z"}))};e.default=n},677,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=c(r(d[2])),u=c(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,t.default)({width:32,height:32,viewBox:"0 0 32 32"},l),u.default.createElement(f.Path,{d:"M16 20.688c2.563 0 4.688-2.125 4.688-4.688s-2.125-4.688-4.688-4.688-4.688 2.125-4.688 4.688 2.125 4.688 4.688 4.688zM25.938 17.313l2.813 2.188c0.25 0.188 0.313 0.563 0.125 0.875l-2.688 4.625c-0.188 0.313-0.5 0.375-0.813 0.25l-3.313-1.313c-0.688 0.5-1.438 1-2.25 1.313l-0.5 3.5c-0.063 0.313-0.313 0.563-0.625 0.563h-5.375c-0.313 0-0.563-0.25-0.625-0.563l-0.5-3.5c-0.813-0.313-1.563-0.75-2.25-1.313l-3.313 1.313c-0.313 0.125-0.625 0.063-0.813-0.25l-2.688-4.625c-0.188-0.313-0.125-0.688 0.125-0.875l2.813-2.188c-0.063-0.438-0.063-0.875-0.063-1.313s0-0.875 0.063-1.313l-2.813-2.188c-0.25-0.188-0.313-0.563-0.125-0.875l2.688-4.625c0.188-0.313 0.5-0.375 0.813-0.25l3.313 1.313c0.688-0.5 1.438-1 2.25-1.313l0.5-3.5c0.063-0.313 0.313-0.563 0.625-0.563h5.375c0.313 0 0.563 0.25 0.625 0.563l0.5 3.5c0.813 0.313 1.563 0.75 2.25 1.313l3.313-1.313c0.313-0.125 0.625-0.063 0.813 0.25l2.688 4.625c0.188 0.313 0.125 0.688-0.125 0.875l-2.813 2.188c0.063 0.438 0.063 0.875 0.063 1.313s0 0.875-0.063 1.313z"}))};e.default=n},678,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),v=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M21.984 2.016v19.969h-19.969zM20.016 6.844l-13.172 13.172h13.172v-13.172z"}))};e.default=v},679,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),h=t(r(d[4])),f=function(t){return v.default.createElement(h.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),v.default.createElement(h.Path,{d:"M2.016 21.984l19.969-19.969v6h-3.984v13.969h-15.984zM20.016 21.984v-1.969h1.969v1.969h-1.969zM20.016 18v-8.016h1.969v8.016h-1.969z"}))};e.default=f},680,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),o=function(t){return f.default.createElement(n.default,(0,u.default)({width:24,height:24,viewBox:"0 0 24 24"},t),f.default.createElement(n.Path,{d:"M2.016 21.984l19.969-19.969v19.969h-19.969z"}))};e.default=o},681,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=l(r(d[2])),u=l(r(d[3])),n=t(r(d[4])),f=function(t){return u.default.createElement(n.default,(0,c.default)({viewBox:"0 0 50 50",enableBackground:"new 0 0 50 50"},t),u.default.createElement(n.Path,{d:"M30.3 13.7L25 8.4l-5.3 5.3-1.4-1.4L25 5.6l6.7 6.7z"}),u.default.createElement(n.Path,{d:"M24 7h2v21h-2z"}),u.default.createElement(n.Path,{d:"M35 40H15c-1.7 0-3-1.3-3-3V19c0-1.7 1.3-3 3-3h7v2h-7c-.6 0-1 .4-1 1v18c0 .6.4 1 1 1h20c.6 0 1-.4 1-1V19c0-.6-.4-1-1-1h-7v-2h7c1.7 0 3 1.3 3 3v18c0 1.7-1.3 3-3 3z"}))};e.default=f},682,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),h=l(r(d[3])),v=t(r(d[4])),c=function(t){return h.default.createElement(v.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),h.default.createElement(v.Path,{d:"M28 22.688v-16h-24v16h24zM28 4c1.438 0 2.688 1.25 2.688 2.688l-0.063 16c0 1.438-1.188 2.625-2.625 2.625h-6.688v2.688h-10.625v-2.688h-6.688c-1.438 0-2.688-1.188-2.688-2.625v-16c0-1.438 1.25-2.688 2.688-2.688h24z"}))};e.default=c},683,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=l(r(d[2])),u=l(r(d[3])),v=t(r(d[4])),f=function(t){return u.default.createElement(v.default,(0,h.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(v.Path,{d:"M17.313 12h7.375l-7.375-7.313v7.313zM21.313 18.688v-2.688h-10.625v2.688h10.625zM21.313 24v-2.688h-10.625v2.688h10.625zM18.688 2.688l8 8v16c0 1.438-1.25 2.625-2.688 2.625h-16c-1.438 0-2.688-1.188-2.688-2.625l0.063-21.375c0-1.438 1.188-2.625 2.625-2.625h10.688z"}))};e.default=f},684,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),n=t(r(d[4])),c=function(t){return f.default.createElement(n.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),f.default.createElement(n.Path,{d:"M16 26.688c5.875 0 10.688-4.813 10.688-10.688s-4.813-10.688-10.688-10.688-10.688 4.813-10.688 10.688 4.813 10.688 10.688 10.688zM16 2.688c7.375 0 13.313 5.938 13.313 13.313s-5.938 13.313-13.313 13.313-13.313-5.938-13.313-13.313 5.938-13.313 13.313-13.313zM13.313 22v-12l8 6z"}))};e.default=c},685,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),v=l(r(d[3])),h=t(r(d[4])),c=function(t){return v.default.createElement(h.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),v.default.createElement(h.Path,{d:"M20 20.688l4.688-4.688-4.688-4.688v3.375h-8v-3.375l-4.688 4.688 4.688 4.688v-3.375h8v3.375zM26.688 5.313c1.438 0 2.625 1.25 2.625 2.688v16c0 1.438-1.188 2.688-2.625 2.688h-21.375c-1.438 0-2.625-1.25-2.625-2.688v-16c0-1.438 1.188-2.688 2.625-2.688h4.25l2.438-2.625h8l2.438 2.625h4.25z"}))};e.default=c},686,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var c=r(d[0]),v=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var h=v(r(d[2])),t=v(r(d[3])),u=c(r(d[4])),l=function(c){return t.default.createElement(u.default,(0,h.default)({width:24,height:24,viewBox:"0 0 24 24"},c),t.default.createElement(u.Path,{d:"M2.667 0h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM4 2.667c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667zM2.667 13.333h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM4 16c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667zM16 0h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM17.333 2.667c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667zM16 13.333h5.333c1.473 0 2.667 1.194 2.667 2.667v5.333c0 1.473-1.194 2.667-2.667 2.667h-5.333c-1.473 0-2.667-1.194-2.667-2.667v-5.333c0-1.473 1.194-2.667 2.667-2.667zM17.333 16c-0.736 0-1.333 0.597-1.333 1.333v2.667c0 0.736 0.597 1.333 1.333 1.333h2.667c0.736 0 1.333-0.597 1.333-1.333v-2.667c0-0.736-0.597-1.333-1.333-1.333h-2.667z"}))};e.default=l},687,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),f=t(r(d[4])),n=function(t){return u.default.createElement(f.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(f.Path,{d:"M22.667 16c0 3.682-2.985 6.667-6.667 6.667s-6.667-2.985-6.667-6.667c0-3.682 2.985-6.667 6.667-6.667s6.667 2.985 6.667 6.667z"}),u.default.createElement(f.Path,{d:"M16 24c4.418 0 8-3.582 8-8s-3.582-8-8-8v0c-4.418 0-8 3.582-8 8s3.582 8 8 8v0zM16 25.333c-5.155 0-9.333-4.179-9.333-9.333s4.179-9.333 9.333-9.333v0c5.155 0 9.333 4.179 9.333 9.333s-4.179 9.333-9.333 9.333v0z"}))};e.default=n},688,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=h(r(d[2])),c=h(r(d[3])),u=t(r(d[4])),v=function(t){return c.default.createElement(u.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),c.default.createElement(u.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM9.633 19.897h1.788l-2.74-7.891h-1.941l-2.74 7.891h1.657l0.607-1.881h2.773l0.596 1.881zM14.434 12.005h-1.652v5.168c0 1.75 1.285 2.926 3.303 2.926 2.023 0 3.309-1.176 3.309-2.926v-5.168h-1.652v4.998c0 0.995-0.596 1.63-1.657 1.63-1.055 0-1.652-0.634-1.652-1.63v-4.998zM21.32 12v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zM22.971 13.411v5.075h1.192c1.46 0 2.28-0.897 2.28-2.565 0-1.597-0.848-2.51-2.28-2.51h-1.192zM7.609 13.646l-0.99 3.095h2.067l-0.979-3.095h-0.098z"}))};e.default=v},689,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var v=h(r(d[2])),u=h(r(d[3])),l=t(r(d[4])),c=function(t){return u.default.createElement(l.default,(0,v.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(l.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM15.042 20v-7.994h-1.696v3.224h-3.65v-3.224h-1.696v7.994h1.696v-3.341h3.65v3.341h1.696zM17.008 12v8h3.19c2.426 0 3.802-1.457 3.802-4.055 0-2.504-1.393-3.945-3.802-3.945h-3.19zM18.704 13.429v5.141h1.224c1.499 0 2.342-0.909 2.342-2.598 0-1.618-0.87-2.543-2.342-2.543h-1.224z"}))};e.default=c},690,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),h=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=h(r(d[2])),l=h(r(d[3])),v=t(r(d[4])),c=function(t){return l.default.createElement(v.default,(0,u.default)({width:32,height:32,viewBox:"0 0 32 32"},t),l.default.createElement(v.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM14.762 18.459h-3.511v-6.453h-1.652v7.891h5.162v-1.438zM16.261 12v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zM17.913 13.411v5.075h1.192c1.46 0 2.28-0.897 2.28-2.565 0-1.597-0.848-2.51-2.28-2.51h-1.192z"}))};e.default=c},691,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=c(r(d[2])),u=c(r(d[3])),h=t(r(d[4])),f=function(t){return u.default.createElement(h.default,(0,l.default)({width:32,height:32,viewBox:"0 0 32 32"},t),u.default.createElement(h.Path,{d:"M16 32c-8.837 0-16-7.163-16-16s7.163-16 16-16c8.837 0 16 7.163 16 16s-7.163 16-16 16zM8.8 17.901c0.060 1.471 1.28 2.395 3.161 2.395 1.98 0 3.199-0.973 3.199-2.565 0-1.225-0.684-1.909-2.27-2.242l-0.952-0.202c-0.924-0.197-1.302-0.476-1.302-0.963 0-0.602 0.547-0.984 1.373-0.984 0.798 0 1.378 0.416 1.455 1.039h1.553c-0.049-1.405-1.28-2.379-3.019-2.379-1.821 0-3.019 0.979-3.019 2.466 0 1.203 0.705 1.952 2.144 2.253l1.028 0.219c0.968 0.208 1.362 0.498 1.362 1.001 0 0.596-0.607 1.012-1.466 1.012-0.93 0-1.575-0.41-1.652-1.050h-1.597zM16.719 12.197v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zM18.37 13.608v5.075h1.192c1.46 0 2.28-0.897 2.28-2.565 0-1.597-0.848-2.51-2.28-2.51h-1.192z"}))};e.default=f},692,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=t(r(d[2])),u=t(r(d[3])),f=l(r(d[4])),n=function(l){return u.default.createElement(f.default,(0,C.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},l),u.default.createElement(f.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M11.1799 3.68341L6 8H3C2.44772 8 2 8.44771 2 9V15C2 15.5523 2.44772 16 3 16H6L11.1799 20.3166C11.2698 20.3915 11.383 20.4325 11.5 20.4325C11.7761 20.4325 12 20.2086 12 19.9325V4.06752C12 3.95055 11.959 3.83728 11.8841 3.74743C11.7073 3.53529 11.392 3.50662 11.1799 3.68341ZM4 10H6.7241L10 7.27008V16.7299L6.7241 14H4V10ZM14 8C16.2091 8 18 9.79086 18 12C18 14.2091 16.2091 16 14 16V14C15.1046 14 16 13.1046 16 12C16 10.8954 15.1046 10 14 10V8ZM14 4C18.4183 4 22 7.58172 22 12C22 16.4183 18.4183 20 14 20V18C17.3137 18 20 15.3137 20 12C20 8.68629 17.3137 6 14 6V4Z",fill:"#A4B8D1"}))};e.default=n},693,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var L=r(d[0]),C=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=C(r(d[2])),l=C(r(d[3])),u=L(r(d[4])),n=function(L){return l.default.createElement(u.default,(0,t.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},L),l.default.createElement(u.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M7.8887 6.42609L7.87494 6.43755L3.73524 2.29786C3.33819 1.9008 2.69455 1.9007 2.29763 2.29763C1.9007 2.69455 1.9008 3.33819 2.29786 3.73524L6.30688 7.74427L6 8H3C2.44772 8 2 8.44772 2 9V15C2 15.5523 2.44772 16 3 16H6L11.1799 20.3166C11.2698 20.3915 11.383 20.4325 11.5 20.4325C11.7761 20.4325 12 20.2086 12 19.9325V13.4374L14 15.4374V16C14.179 16 14.3553 15.9882 14.5281 15.9655L16.1615 17.5989C15.4909 17.8579 14.762 18 14 18V20C15.3237 20 16.5723 19.6785 17.672 19.1094L20.2648 21.7021C20.6618 22.0992 21.3055 22.0993 21.7024 21.7024C22.0993 21.3055 22.0992 20.6618 21.7021 20.2648L19.3686 17.9312C19.373 17.9272 19.3774 17.9232 19.3818 17.9192L17.9655 16.5029C17.961 16.5068 17.9565 16.5107 17.9521 16.5147L16.5332 15.0958C16.5378 15.092 16.5424 15.0882 16.547 15.0844L15.1203 13.6577C15.1153 13.6611 15.1103 13.6645 15.1052 13.6678L12 10.5626V10.5374L10 8.53739V8.56261L9.29498 7.8576L9.30874 7.84613L7.8887 6.42609ZM14 9.66261L17.7452 13.4078C17.9099 12.9699 18 12.4955 18 12C18 9.79086 16.2091 8 14 8V9.66261ZM19.248 14.9106L20.7042 16.3668C21.5237 15.1112 22 13.6112 22 12C22 7.58172 18.4183 4 14 4V6C17.3137 6 20 8.68629 20 12C20 13.0562 19.7271 14.0486 19.248 14.9106ZM12 7.66261L9.45676 5.11937L11.1799 3.68341C11.392 3.50663 11.7073 3.53529 11.8841 3.74743C11.959 3.83729 12 3.95055 12 4.06752V7.66261ZM6.7241 10L7.72692 9.16431L10 11.4374V16.7299L6.7241 14H4V10H6.7241Z"}))};e.default=n},694,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),f=l(r(d[3])),h=t(r(d[4])),n=function(t){return f.default.createElement(h.default,(0,u.default)({height:24,viewBox:"0 0 24 24",width:24},t),f.default.createElement(h.Path,{d:"M0 0h24v24H0z",fill:"none"}),f.default.createElement(h.Path,{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}))};e.default=n},695,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=l(r(d[2])),f=l(r(d[3])),u=t(r(d[4])),n=function(t){return f.default.createElement(u.default,(0,C.default)({width:16,height:12,viewBox:"0 0 16 12",fill:"none"},t),f.default.createElement(u.Path,{opacity:.4,d:"M13.0913 6.59847C12.4227 5.88894 11.629 5.32611 10.7554 4.94212C9.88182 4.55812 8.94553 4.36048 7.99997 4.36048C7.05442 4.36048 6.11813 4.55812 5.24456 4.94212C4.371 5.32611 3.57726 5.88894 2.90869 6.59847L4.36305 8.14176C4.84061 7.63486 5.4076 7.23276 6.03163 6.95842C6.65566 6.68408 7.32451 6.54288 7.99997 6.54288C8.67544 6.54288 9.34429 6.68408 9.96832 6.95842C10.5923 7.23276 11.1593 7.63486 11.6369 8.14176L13.0913 6.59847Z",fill:"white"}),f.default.createElement(u.Path,{opacity:.4,d:"M16 3.51081C13.8766 1.26261 10.9996 0 8 0C5.00044 0 2.12337 1.26261 0 3.51081L1.45436 5.0541C3.19156 3.21432 5.54565 2.18105 8 2.18105C10.4543 2.18105 12.8084 3.21432 14.5456 5.0541L16 3.51081Z",fill:"white"}),f.default.createElement(u.Path,{d:"M5.94287 9.81713L7.99996 12L10.057 9.81713C9.78693 9.53041 9.46623 9.30297 9.11328 9.1478C8.76032 8.99263 8.38201 8.91276 7.99996 8.91276C7.6179 8.91276 7.23959 8.99263 6.88663 9.1478C6.53368 9.30297 6.21298 9.53041 5.94287 9.81713Z"}))};e.default=n},696,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=l(r(d[2])),f=l(r(d[3])),u=t(r(d[4])),n=function(t){return f.default.createElement(u.default,(0,C.default)({width:16,height:12,viewBox:"0 0 16 12",fill:"none"},t),f.default.createElement(u.Path,{d:"M13.0913 6.59847C12.4227 5.88894 11.629 5.32611 10.7554 4.94211C9.88182 4.55811 8.94553 4.36047 7.99997 4.36047C7.05442 4.36047 6.11813 4.55811 5.24456 4.94211C4.371 5.32611 3.57726 5.88894 2.90869 6.59847L4.36305 8.14176C4.84061 7.63486 5.4076 7.23276 6.03163 6.95842C6.65566 6.68408 7.32451 6.54288 7.99997 6.54288C8.67544 6.54288 9.34429 6.68408 9.96832 6.95842C10.5923 7.23276 11.1593 7.63486 11.6369 8.14176L13.0913 6.59847Z",fill:"white"}),f.default.createElement(u.Path,{opacity:.4,d:"M16 3.51081C13.8766 1.26261 10.9996 0 8 0C5.00044 0 2.12337 1.26261 0 3.51081L1.45436 5.0541C3.19156 3.21432 5.54565 2.18105 8 2.18105C10.4543 2.18105 12.8084 3.21432 14.5456 5.0541L16 3.51081Z",fill:"white"}),f.default.createElement(u.Path,{d:"M5.94287 9.81713L7.99996 12L10.057 9.81713C9.78693 9.53042 9.46623 9.30298 9.11328 9.14781C8.76032 8.99263 8.38201 8.91277 7.99996 8.91277C7.6179 8.91277 7.23959 8.99263 6.88663 9.14781C6.53368 9.30298 6.21298 9.53042 5.94287 9.81713Z"}))};e.default=n},697,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var C=l(r(d[2])),f=l(r(d[3])),u=t(r(d[4])),n=function(t){return f.default.createElement(u.default,(0,C.default)({width:16,height:12,viewBox:"0 0 16 12",fill:"none"},t),f.default.createElement(u.Path,{d:"M13.0913 6.59847C12.4227 5.88894 11.629 5.32611 10.7554 4.94211C9.88182 4.55811 8.94553 4.36047 7.99997 4.36047C7.05442 4.36047 6.11813 4.55811 5.24456 4.94211C4.371 5.32611 3.57726 5.88894 2.90869 6.59847L4.36305 8.14176C4.84061 7.63486 5.4076 7.23276 6.03163 6.95842C6.65566 6.68408 7.32451 6.54288 7.99997 6.54288C8.67544 6.54288 9.34429 6.68408 9.96832 6.95842C10.5923 7.23276 11.1593 7.63486 11.6369 8.14176L13.0913 6.59847Z",fill:"white"}),f.default.createElement(u.Path,{d:"M16 3.51081C13.8766 1.26261 10.9996 0 8 0C5.00044 0 2.12337 1.26261 0 3.51081L1.45436 5.0541C3.19156 3.21432 5.54565 2.18105 8 2.18105C10.4543 2.18105 12.8084 3.21432 14.5456 5.0541L16 3.51081Z",fill:"white"}),f.default.createElement(u.Path,{d:"M5.94287 9.81713L7.99996 12L10.057 9.81713C9.78693 9.53042 9.46623 9.30298 9.11328 9.14781C8.76032 8.99263 8.38201 8.91277 7.99996 8.91277C7.6179 8.91277 7.23959 8.99263 6.88663 9.14781C6.53368 9.30298 6.21298 9.53042 5.94287 9.81713Z"}))};e.default=n},698,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var f=l(r(d[2])),u=l(r(d[3])),n=t(r(d[4])),o=function(t){return u.default.createElement(n.default,(0,f.default)({width:24,height:24,viewBox:"0 0 24 24",fill:"none"},t),u.default.createElement(n.Path,{d:"M4 3H9.10397L12.076 10.6035L15.0865 3H20.0561L12.573 21H7.57197L9.62033 16.2303L4 3Z",fill:"#A4B8D1"}))};e.default=o},699,[2,3,24,59,557]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),c=(function(t){function c(){return(0,u.default)(this,c),(0,o.default)(this,(0,f.default)(c).apply(this,arguments))}return(0,l.default)(c,t),(0,n.default)(c,[{key:"_isIcon",value:function(t){return Boolean(t)&&('object'==typeof t||'function'==typeof t)}}]),c})(r(d[6]).PureComponent);e.default=c},700,[3,4,5,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),l=r(d[3]),u={avatarContainer:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:65;return{alignItems:'center',borderRadius:t/2,height:t,justifyContent:'center',overflow:'hidden',width:t}},avatarContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:65;return{height:t,width:t}},badge:function(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:65;switch(arguments.length>1?arguments[1]:void 0){case'available':t='rgb(110, 176, 5)';break;case'away':t='rgb(250, 201, 20)';break;case'busy':t='rgb(233, 0, 27)';break;case'idle':t='rgb(172, 172, 172)'}return{backgroundColor:t,borderRadius:n/2,bottom:0,height:.3*n,position:'absolute',width:.3*n}},badgeContainer:(0,n.default)({},o.StyleSheet.absoluteFillObject),initialsContainer:{alignItems:'center',alignSelf:'stretch',flex:1,justifyContent:'center'},initialsText:function(){return{color:'white',fontSize:.45*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:65),fontWeight:'100'}},staticAvatar:{backgroundColor:l.ColorPalette.lightGrey,opacity:.4}};e.default=u},701,[3,53,15,522]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/images",width:200,height:200,scales:[1],hash:"d424259cf27ba5c430d387e32c8cca56",name:"avatar",type:"png"})},702,[180]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=L,e.default=e.DEFAULT_SIZE=void 0;var l=o(r(d[2])),n=o(r(d[3])),s=o(r(d[4])),u=o(r(d[5])),v=o(r(d[6])),c=o(r(d[7])),f=t(r(d[8])),_=r(d[9]),p=r(d[10]),A=r(d[11]),E=r(d[12]);e.DEFAULT_SIZE=65;var h=(function(t){function o(t){var n;return(0,l.default)(this,o),(n=(0,s.default)(this,(0,u.default)(o).call(this,t))).state={avatarFailed:!1},n._onAvatarLoadError=n._onAvatarLoadError.bind((0,c.default)((0,c.default)(n))),n}return(0,v.default)(o,t),(0,n.default)(o,[{key:"componentDidUpdate",value:function(t){t.url!==this.props.url&&this.setState({avatarFailed:!1})}},{key:"render",value:function(){var t=this.props,o=t._initialsBase,l=t._loadableAvatarUrl,n=t.className,s=t.colorBase,u=t.id,v=t.size,c=t.status,_=t.testId,p=t.url,h={className:n,color:void 0,id:u,initials:void 0,onAvatarLoadError:void 0,size:v,status:c,testId:_,url:void 0},L=!this.state.avatarFailed&&p||l;L&&(h.onAvatarLoadError=this._onAvatarLoadError,h.url=L);var I=(0,A.getInitials)(o);return I&&(h.color=(0,A.getAvatarColor)(s||o),h.initials=I),f.default.createElement(E.StatelessAvatar,h)}},{key:"_onAvatarLoadError",value:function(){this.setState({avatarFailed:!0})}}]),o})(f.PureComponent);function L(t,o){var l,n=o.colorBase,s=o.displayName,u=o.participantId,v=u&&(0,_.getParticipantById)(t,u);return{_initialsBase:null!=(l=null==v?void 0:v.name)?l:s,_loadableAvatarUrl:null==v?void 0:v.loadableAvatarUrl,colorBase:!n&&v?v.id:n}}var I=(0,p.connect)(L)(h);e.default=I},703,[2,3,4,5,6,9,10,8,59,704,443,1016,545]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},704,[705,877,947,945,878]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.dominantSpeakerChanged=function(t,n){return{type:p.DOMINANT_SPEAKER_CHANGED,participant:{conference:n,id:t}}},e.grantModerator=function(t){return{type:p.GRANT_MODERATOR,id:t}},e.kickParticipant=function(t){return{type:p.KICK_PARTICIPANT,id:t}},e.localParticipantConnectionStatusChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n(f(o.id,t))}},e.localParticipantIdChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n({type:p.PARTICIPANT_ID_CHANGED,conference:void 0,newValue:t,oldValue:o.id})}},e.localParticipantJoined=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return l((0,o.set)(t,'local',!0))},e.localParticipantLeft=function(){return function(t,n){var c=(0,u.getLocalParticipant)(n);if(c)return t(P(c.id,void 0))}},e.localParticipantRoleChanged=function(t){return function(n,c){var o=(0,u.getLocalParticipant)(c);if(o)return n(I(o.id,t))}},e.muteRemoteParticipant=function(t){return{type:p.MUTE_REMOTE_PARTICIPANT,id:t}},e.participantConnectionStatusChanged=f,e.participantJoined=l,e.hiddenParticipantJoined=function(t,n){return{type:p.HIDDEN_PARTICIPANT_JOINED,id:t,displayName:n}},e.hiddenParticipantLeft=function(t){return{type:p.HIDDEN_PARTICIPANT_LEFT,id:t}},e.participantLeft=P,e.participantPresenceChanged=function(t,n){return A({id:t,presence:n})},e.participantRoleChanged=I,e.participantUpdated=A,e.participantMutedUs=function(t){return function(n,o){t&&n((0,c.showNotification)({descriptionKey:'notify.mutedRemotelyDescription',titleKey:'notify.mutedRemotelyTitle',titleArguments:{participantDisplayName:(0,u.getParticipantDisplayName)(o,t.getId())}}))}},e.participantKicked=function(t,n){return function(o,f){o({type:p.PARTICIPANT_KICKED,kicked:n.getId(),kicker:t.getId()}),o((0,c.showNotification)({titleArguments:{kicked:(0,u.getParticipantDisplayName)(f,n.getId()),kicker:(0,u.getParticipantDisplayName)(f,t.getId())},titleKey:'notify.kickParticipant'},2*c.NOTIFICATION_TIMEOUT))}},e.pinParticipant=function(t){return{type:p.PIN_PARTICIPANT,participant:{id:t}}},e.setLoadableAvatarUrl=function(t,n){return{type:p.SET_LOADABLE_AVATAR_URL,participant:{id:t,loadableAvatarUrl:n}}};var n=t(r(d[1])),c=r(d[2]),o=r(d[3]),p=r(d[4]),u=r(d[5]);function f(t,n){return{type:p.PARTICIPANT_UPDATED,participant:{connectionStatus:n,id:t}}}function l(t){if(t.local)return{type:p.PARTICIPANT_JOINED,participant:t};var n=t.conference;if(!n)throw Error('A remote participant must be associated with a JitsiConference!');return function(c,o){var u=o()['features/base/conference'];if(n===u.conference||n===u.joining)return c({type:p.PARTICIPANT_JOINED,participant:t})}}function P(t,n){return{type:p.PARTICIPANT_LEFT,participant:{conference:n,id:t}}}function I(t,n){return A({id:t,role:n})}function A(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=(0,n.default)({},t);return t.name&&(c.name=(0,u.getNormalizedDisplayName)(t.name)),{type:p.PARTICIPANT_UPDATED,participant:c}}},705,[3,53,706,443,877,878]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},706,[707,721,723,722,876]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.clearNotifications=function(){return{type:u.CLEAR_NOTIFICATIONS}},e.hideNotification=function(t){return{type:u.HIDE_NOTIFICATION,uid:t}},e.setNotificationsEnabled=function(t){return{type:u.SET_NOTIFICATIONS_ENABLED,enabled:t}},e.showErrorNotification=function(t){return f((0,n.default)({},t,{appearance:c.NOTIFICATION_TYPE.ERROR}))},e.showNotification=f,e.showWarningNotification=function(t){return f((0,n.default)({},t,{appearance:c.NOTIFICATION_TYPE.WARNING}))},e.showParticipantJoinedNotification=function(t){return I.push(t),function(t){return N(t)}};var n=t(r(d[1])),o=t(r(d[2])),u=r(d[3]),c=r(d[4]);function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return{type:u.SHOW_NOTIFICATION,props:t,timeout:n,uid:window.Date.now()}}var I=[],N=(0,o.default)(function(t){var n,o=I.length;o>=3?n={titleArguments:{name:I[0],count:o-1},titleKey:'notify.connectedThreePlusMembers'}:2===o?n={titleArguments:{first:I[0],second:I[1]},titleKey:'notify.connectedTwoMembers'}:o&&(n={titleArguments:{name:I[0]},titleKey:'notify.connectedOneMember'}),n&&t(f(n,c.NOTIFICATION_TIMEOUT)),I=[]},500,{leading:!1})},707,[3,53,708,721,722]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o='Expected a function';m.exports=function(f,l,c){var u=!0,p=!0;if('function'!=typeof f)throw new TypeError(o);return t(c)&&(u='leading'in c?!!c.leading:u,p='trailing'in c?!!c.trailing:p),n(f,l,{leading:u,maxWait:l,trailing:p})}},708,[709,710]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u='Expected a function',f=Math.max,c=Math.min;m.exports=function(v,l,s){var T,p,h,x,y,w,E=0,M=!1,W=!1,_=!0;if('function'!=typeof v)throw new TypeError(u);function b(n){var t=T,o=p;return T=p=void 0,E=n,x=v.apply(o,t)}function j(n){return E=n,y=setTimeout(z,l),M?b(n):x}function k(n){var t=l-(n-w);return W?c(t,h-(n-E)):t}function q(n){var t=n-w;return void 0===w||t>=l||t<0||W&&n-E>=h}function z(){var n=t();if(q(n))return A(n);y=setTimeout(z,k(n))}function A(n){return y=void 0,_&&T?b(n):(T=p=void 0,x)}function B(){var n=t(),o=q(n);if(T=arguments,p=this,w=n,o){if(void 0===y)return j(w);if(W)return clearTimeout(y),y=setTimeout(z,l),b(w)}return void 0===y&&(y=setTimeout(z,l)),x}return l=o(l)||0,n(s)&&(M=!!s.leading,h=(W='maxWait'in s)?f(o(s.maxWait)||0,l):h,_='trailing'in s?!!s.trailing:_),B.cancel=function(){void 0!==y&&clearTimeout(y),E=0,T=w=p=y=void 0},B.flush=function(){return void 0===y?x:A(t())},B}},709,[710,711,714]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){var t=typeof n;return null!=n&&('object'==t||'function'==t)}},710,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);m.exports=function(){return n.Date.now()}},711,[712]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),f='object'==typeof self&&self&&self.Object===Object&&self,s=t||f||Function('return this')();m.exports=s},712,[713]);
__d(function(g,r,i,a,m,e,d){var t='object'==typeof g&&g&&g.Object===Object&&g;m.exports=t},713,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),f=r(d[1]),n=NaN,u=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,p=/^0o[0-7]+$/i,c=parseInt;m.exports=function(v){if('number'==typeof v)return v;if(f(v))return n;if(t(v)){var l='function'==typeof v.valueOf?v.valueOf():v;v=t(l)?l+'':l}if('string'!=typeof v)return 0===v?v:+v;v=v.replace(u,'');var $=o.test(v);return $||p.test(v)?c(v.slice(2),$?2:8):s.test(v)?n:+v}},714,[710,715]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]),t=r(d[1]),n='[object Symbol]';m.exports=function(b){return'symbol'==typeof b||t(b)&&o(b)==n}},715,[716,720]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),c='[object Null]',u='[object Undefined]',f=n?"function"==typeof n?n.toStringTag:"@@toStringTag":void 0;m.exports=function(n){return null==n?void 0===n?u:c:f&&f in Object(n)?t(n):o(n)}},716,[717,718,719]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]).Symbol;m.exports=o},717,[712]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=Object.prototype,n=o.hasOwnProperty,c=o.toString,l=t?"function"==typeof t?t.toStringTag:"@@toStringTag":void 0;m.exports=function(t){var o=n.call(t,l),p=t[l];try{t[l]=void 0}catch(t){}var v=c.call(t);return o?t[l]=p:delete t[l],v}},718,[717]);
__d(function(g,r,i,a,m,e,d){var t=Object.prototype.toString;m.exports=function(n){return t.call(n)}},719,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){return null!=n&&'object'==typeof n}},720,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_NOTIFICATIONS_ENABLED=e.SHOW_NOTIFICATION=e.HIDE_NOTIFICATION=e.CLEAR_NOTIFICATIONS=void 0;e.CLEAR_NOTIFICATIONS='CLEAR_NOTIFICATIONS';e.HIDE_NOTIFICATION='HIDE_NOTIFICATION';e.SHOW_NOTIFICATION='SHOW_NOTIFICATION';e.SET_NOTIFICATIONS_ENABLED='SET_NOTIFICATIONS_ENABLED'},721,[]);
__d(function(g,r,i,a,m,e,d){var I=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.NOTIFICATION_TYPE_PRIORITIES=e.NOTIFICATION_TYPE=e.NOTIFICATION_TIMEOUT=void 0;var O,T=I(r(d[1]));e.NOTIFICATION_TIMEOUT=2500;var N={ERROR:'error',INFO:'info',NORMAL:'normal',SUCCESS:'success',WARNING:'warning'};e.NOTIFICATION_TYPE=N;var R=(O={},(0,T.default)(O,N.ERROR,5),(0,T.default)(O,N.INFO,3),(0,T.default)(O,N.NORMAL,3),(0,T.default)(O,N.SUCCESS,3),(0,T.default)(O,N.WARNING,4),O);e.NOTIFICATION_TYPE_PRIORITIES=R},722,[3,54]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},723,[724]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Notification",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"NotificationsContainer",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),o=t(r(d[2]))},724,[3,725,874]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),c=r(d[7]),y=r(d[8]),p=r(d[9]),v=t(r(d[10])),h=t(r(d[11])),E=(function(t){function y(){return(0,n.default)(this,y),(0,u.default)(this,(0,s.default)(y).apply(this,arguments))}return(0,o.default)(y,t),(0,l.default)(y,[{key:"render",value:function(){var t=this.props.isDismissAllowed;return f.default.createElement(c.View,{pointerEvents:"box-none",style:h.default.notification},f.default.createElement(c.View,{style:h.default.contentColumn},f.default.createElement(c.View,{pointerEvents:"box-none",style:h.default.notificationContent},this._renderContent())),t&&f.default.createElement(c.TouchableOpacity,{onPress:this._onDismissed},f.default.createElement(p.Icon,{src:p.IconClose,style:h.default.dismissIcon})))}},{key:"_renderContent",value:function(){var t=this.props,n=t.maxLines,l=void 0===n?1:n,u=t.t,s=t.title,o=t.titleArguments,y=t.titleKey,p=s||y&&u(y,o),v=this._getDescription();return v&&v.length?v.map(function(t,n){return f.default.createElement(c.Text,{key:n,numberOfLines:l,style:h.default.contentText},t)}):f.default.createElement(c.Text,{numberOfLines:l,style:h.default.contentText},p)}}]),y})(v.default),_=(0,y.translate)(E);e.default=_},725,[3,4,5,6,9,10,59,15,726,548,872,873]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={i18next:!0,DEFAULT_LANGUAGE:!0,LANGUAGES:!0};Object.defineProperty(e,"i18next",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"DEFAULT_LANGUAGE",{enumerable:!0,get:function(){return c.DEFAULT_LANGUAGE}}),Object.defineProperty(e,"LANGUAGES",{enumerable:!0,get:function(){return c.LANGUAGES}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var c=t(r(d[3]))},726,[2,727,842,729]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getLocalizedDateFormatter=function(t){return(0,n.default)(t).locale(o())},e.getLocalizedDurationFormatter=function(t){if('0'!==n.default.duration(t).format('h'))return n.default.duration(t).format('h:mm:ss');return n.default.duration(t).format('mm:ss',{trim:!1})};var n=t(r(d[1])),u=t(r(d[2]));function o(){var t,o=u.default.language;if(o){var f=new RegExp('^([a-z]{2,2})(-)*([a-z]{2,2})*$').exec(o.toLowerCase());if(f){var l=new RegExp("^"+f[1]+"(-)*"+("("+f[3]+")*"||''));t=n.default.locales().find(function(t){return l.exec(t)})}}return t||'en'}r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8]),r(d[9]),r(d[10]),r(d[11]),r(d[12]),r(d[13]),r(d[14]),r(d[15]),r(d[16]),r(d[17]),r(d[18]),r(d[19]),r(d[20])},727,[3,728,729,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841]);
__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(){'use strict';var t,n;function s(){return t.apply(null,arguments)}function o(t){return t instanceof Array||'[object Array]'===Object.prototype.toString.call(t)}function u(t){return null!=t&&'[object Object]'===Object.prototype.toString.call(t)}function l(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var n;for(n in t)if(t.hasOwnProperty(n))return!1;return!0}function h(t){return void 0===t}function c(t){return'number'==typeof t||'[object Number]'===Object.prototype.toString.call(t)}function f(t){return t instanceof Date||'[object Date]'===Object.prototype.toString.call(t)}function _(t,n){var s,o=[];for(s=0;s<t.length;++s)o.push(n(t[s],s));return o}function y(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function v(t,n){for(var s in n)y(n,s)&&(t[s]=n[s]);return y(n,'toString')&&(t.toString=n.toString),y(n,'valueOf')&&(t.valueOf=n.valueOf),t}function p(t,n,s,o){return Xt(t,n,s,o,!0).utc()}function w(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function M(t){if(null==t._isValid){var s=w(t),o=n.call(s.parsedDateParts,function(t){return null!=t}),u=!isNaN(t._d.getTime())&&s.overflow<0&&!s.empty&&!s.invalidMonth&&!s.invalidWeekday&&!s.weekdayMismatch&&!s.nullInput&&!s.invalidFormat&&!s.userInvalidated&&(!s.meridiem||s.meridiem&&o);if(t._strict&&(u=u&&0===s.charsLeftOver&&0===s.unusedTokens.length&&void 0===s.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return u;t._isValid=u}return t._isValid}function k(t){var n=p(NaN);return null!=t?v(w(n),t):w(n).userInvalidated=!0,n}n=Array.prototype.some?Array.prototype.some:function(t){for(var n=Object(this),s=n.length>>>0,o=0;o<s;o++)if(o in n&&t.call(this,n[o],o,n))return!0;return!1};var S=s.momentProperties=[];function D(t,n){var s,o,u;if(h(n._isAMomentObject)||(t._isAMomentObject=n._isAMomentObject),h(n._i)||(t._i=n._i),h(n._f)||(t._f=n._f),h(n._l)||(t._l=n._l),h(n._strict)||(t._strict=n._strict),h(n._tzm)||(t._tzm=n._tzm),h(n._isUTC)||(t._isUTC=n._isUTC),h(n._offset)||(t._offset=n._offset),h(n._pf)||(t._pf=w(n)),h(n._locale)||(t._locale=n._locale),S.length>0)for(s=0;s<S.length;s++)h(u=n[o=S[s]])||(t[o]=u);return t}var Y=!1;function O(t){D(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===Y&&(Y=!0,s.updateOffset(this),Y=!1)}function T(t){return t instanceof O||null!=t&&null!=t._isAMomentObject}function x(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function b(t){var n=+t,s=0;return 0!==n&&isFinite(n)&&(s=x(n)),s}function P(t,n,s){var o,u=Math.min(t.length,n.length),l=Math.abs(t.length-n.length),h=0;for(o=0;o<u;o++)(s&&t[o]!==n[o]||!s&&b(t[o])!==b(n[o]))&&h++;return h+l}function W(t){!1===s.suppressDeprecationWarnings&&'undefined'!=typeof console&&console.warn&&console.warn('Deprecation warning: '+t)}function R(t,n){var o=!0;return v(function(){if(null!=s.deprecationHandler&&s.deprecationHandler(null,t),o){for(var u,l=[],h=0;h<arguments.length;h++){if(u='','object'==typeof arguments[h]){for(var c in u+='\n['+h+'] ',arguments[0])u+=c+': '+arguments[0][c]+', ';u=u.slice(0,-2)}else u=arguments[h];l.push(u)}W(t+'\nArguments: '+Array.prototype.slice.call(l).join('')+'\n'+(new Error).stack),o=!1}return n.apply(this,arguments)},n)}var C,F={};function U(t,n){null!=s.deprecationHandler&&s.deprecationHandler(t,n),F[t]||(W(n),F[t]=!0)}function N(t){return t instanceof Function||'[object Function]'===Object.prototype.toString.call(t)}function H(t,n){var s,o=v({},t);for(s in n)y(n,s)&&(u(t[s])&&u(n[s])?(o[s]={},v(o[s],t[s]),v(o[s],n[s])):null!=n[s]?o[s]=n[s]:delete o[s]);for(s in t)y(t,s)&&!y(n,s)&&u(t[s])&&(o[s]=v({},o[s]));return o}function L(t){null!=t&&this.set(t)}s.suppressDeprecationWarnings=!1,s.deprecationHandler=null,C=Object.keys?Object.keys:function(t){var n,s=[];for(n in t)y(t,n)&&s.push(n);return s};var G={};function V(t,n){var s=t.toLowerCa
__d(function(g,r,i,a,m,e,d){var u=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.DEFAULT_LANGUAGE=e.LANGUAGES=void 0;var l=u(r(d[1])),t=u(r(d[2])),n=u(r(d[3])),s=u(r(d[4])),f=u(r(d[5])),o=u(r(d[6])),c=Object.keys(s.default);e.LANGUAGES=c;var A=c[0];e.DEFAULT_LANGUAGE=A;var v={backend:{loadPath:'lang/{{ns}}-{{lng}}.json'},defaultNS:'main',fallbackLng:A,interpolation:{escapeValue:!1},load:'languageOnly',ns:['main','languages','countries'],react:{useSuspense:!1},returnEmptyString:!1,returnNull:!1,whitelist:c.slice()};t.default.use('ReactNative'===navigator.product?{}:n.default).use(o.default).init(v),t.default.addResourceBundle(A,'countries',l.default,!0,!0),t.default.addResourceBundle(A,'languages',s.default,!0,!0),t.default.addResourceBundle(A,'main',f.default,!0,!0),r(d[7]);var G=t.default;e.default=G},729,[3,730,731,750,754,755,756,757]);
__d(function(a,n,i,e,r,o,t){r.exports={locale:"en",countries:{AF:"Afghanistan",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, the Democratic Republic of the",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran, Islamic Republic of",IQ:"Iraq",IE:"Ireland",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao People's Democratic Republic",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia, the Former Yugoslav Republic of",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia, Federated States of",MD:"Moldova, Republic of",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan",TJ:"Tajikistan",TZ:"Tanzania, United Republic of",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States of America",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",AX:"\xc5land Islands",BQ:"Bonaire, Sint Eustatius and Saba",CW:"C
__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return t&&'object'==typeof t&&'default'in t?t.default:t}var n=t(r(d[0])),o=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),p=t(r(d[7])),h=t(r(d[8])),v=t(r(d[9])),y={type:'logger',log:function(t){this.output('log',t)},warn:function(t){this.output('warn',t)},error:function(t){this.output('error',t)},output:function(t,n){var o;console&&console[t]&&(o=console)[t].apply(o,h(n))}},b=new((function(){function t(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,t),this.init(n,o)}return u(t,[{key:"init",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n.prefix||'i18next:',this.logger=t||y,this.options=n,this.debug=n.debug}},{key:"setDebug",value:function(t){this.debug=t}},{key:"log",value:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return this.forward(n,'log','',!0)}},{key:"warn",value:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return this.forward(n,'warn','',!0)}},{key:"error",value:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return this.forward(n,'error','')}},{key:"deprecate",value:function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return this.forward(n,'warn','WARNING DEPRECATED: ',!0)}},{key:"forward",value:function(t,n,o,s){return s&&!this.debug?null:('string'==typeof t[0]&&(t[0]="".concat(o).concat(this.prefix," ").concat(t[0])),this.logger[n](t))}},{key:"create",value:function(n){return new t(this.logger,o({},{prefix:"".concat(this.prefix,":").concat(n,":")},this.options))}}]),t})()),k=(function(){function t(){s(this,t),this.observers={}}return u(t,[{key:"on",value:function(t,n){var o=this;return t.split(' ').forEach(function(t){o.observers[t]=o.observers[t]||[],o.observers[t].push(n)}),this}},{key:"off",value:function(t,n){var o=this;this.observers[t]&&this.observers[t].forEach(function(){if(n){var s=o.observers[t].indexOf(n);s>-1&&o.observers[t].splice(s,1)}else delete o.observers[t]})}},{key:"emit",value:function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];this.observers[t]&&[].concat(this.observers[t]).forEach(function(t){t.apply(void 0,o)});this.observers['*']&&[].concat(this.observers['*']).forEach(function(n){n.apply(n,[t].concat(o))})}}]),t})();function x(){var t,n,o=new Promise(function(o,s){t=o,n=s});return o.resolve=t,o.reject=n,o}function S(t){return null==t?'':''+t}function w(t,n,o){function s(t){return t&&t.indexOf('###')>-1?t.replace(/###/g,'.'):t}function u(){return!t||'string'==typeof t}for(var l='string'!=typeof n?[].concat(n):n.split('.');l.length>1;){if(u())return{};var c=s(l.shift());!t[c]&&o&&(t[c]=new o),t=t[c]}return u()?{}:{obj:t,k:s(l.shift())}}function R(t,n,o){var s=w(t,n,Object);s.obj[s.k]=o}function O(t,n){var o=w(t,n),s=o.obj,u=o.k;if(s)return s[u]}function L(t,n,o){for(var s in n)s in t?'string'==typeof t[s]||t[s]instanceof String||'string'==typeof n[s]||n[s]instanceof String?o&&(t[s]=n[s]):L(t[s],n[s],o):t[s]=n[s];return t}function N(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,'\\$&')}var C={'&':'&','<':'<','>':'>','"':'"',"'":''','/':'/'};function j(t){return'string'==typeof t?t.replace(/[&<>"'\/]/g,function(t){return C[t]}):t}var E=(function(t){function n(t){var o,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:['translation'],defaultNS:'translation'};return s(this,n),o=l(this,c(n).call(this)),k.call(f(o)),o.data=t||{},o.options=u,void 0===o.options.keySeparator&&(o.options.keySeparator='.'),o}return p(n,k),u(n,[{key:"addNamespaces",value:function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function(t){var n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}},{key:"getResource",value:function(t,n,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},u=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator,l=[t,n];return o&&
__d(function(g,r,i,a,m,e,d){function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof o})(t)}function t(n){return"function"==typeof Symbol&&"symbol"===o("function"==typeof Symbol?Symbol.iterator:"@@iterator")?m.exports=t=function(t){return o(t)}:m.exports=t=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":o(t)},t(n)}m.exports=t},732,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n){for(var o=1;o<arguments.length;o++){var c=null!=arguments[o]?arguments[o]:{},f=Object.keys(c);'function'==typeof Object.getOwnPropertySymbols&&(f=f.concat(Object.getOwnPropertySymbols(c).filter(function(t){return Object.getOwnPropertyDescriptor(c,t).enumerable}))),f.forEach(function(o){t(n,o,c[o])})}return n}},733,[734]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,t,u){return t in n?Object.defineProperty(n,t,{value:u,enumerable:!0,configurable:!0,writable:!0}):n[t]=u,n}},734,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},735,[]);
__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o<t.length;o++){var u=t[o];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(n,u.key,u)}}m.exports=function(t,o,u){return o&&n(t.prototype,o),u&&n(t,u),t}},736,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]);m.exports=function(o,c){return!c||"object"!==n(c)&&"function"!=typeof c?t(o):c}},737,[732,738]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}},738,[]);
__d(function(g,r,i,a,m,e,d){function t(o){return m.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},t(o)}m.exports=t},739,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(o,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");o.prototype=Object.create(n&&n.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),n&&t(o,n)}},740,[741]);
__d(function(g,r,i,a,m,e,d){function t(o,n){return m.exports=t=Object.setPrototypeOf||function(t,o){return t.__proto__=o,t},t(o,n)}m.exports=t},741,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u){return n(u)||t(u)||o()}},742,[743,744,745]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n)){for(var t=0,f=new Array(n.length);t<n.length;t++)f[t]=n[t];return f}}},743,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t){if(("function"==typeof Symbol?Symbol.iterator:"@@iterator")in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}},744,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},745,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u,c){return n(u)||t(u,c)||o()}},746,[747,748,749]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n))return n}},747,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t,n){var o=[],l=!0,u=!1,f=void 0;try{for(var y,c=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(l=(y=c.next()).done)&&(o.push(y.value),!n||o.length!==n);l=!0);}catch(t){u=!0,f=t}finally{try{l||null==c.return||c.return()}finally{if(u)throw f}}return o}},748,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},749,[]);
__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return t&&'object'==typeof t&&'default'in t?t.default:t}var n=t(r(d[0])),o=t(r(d[1])),s=t(r(d[2])),l=[],c=l.forEach,u=l.slice;function p(t){return c.call(u.call(arguments,1),function(n){if(n)for(var o in n)void 0===t[o]&&(t[o]=n[o])}),t}function f(t,n){if(n&&'object'===s(n)){var o='',l=encodeURIComponent;for(var c in n)o+='&'+l(c)+'='+l(n[c]);if(!o)return t;t=t+(-1!==t.indexOf('?')?'&':'?')+o.slice(1)}return t}function h(t,n,o,l,c){l&&'object'===s(l)&&(c||(l._t=new Date),l=f('',l).slice(1)),n.queryStringParams&&(t=f(t,n.queryStringParams));try{var u;(u=XMLHttpRequest?new XMLHttpRequest:new ActiveXObject('MSXML2.XMLHTTP.3.0')).open(l?'POST':'GET',t,1),n.crossDomain||u.setRequestHeader('X-Requested-With','XMLHttpRequest'),u.withCredentials=!!n.withCredentials,l&&u.setRequestHeader('Content-type','application/x-www-form-urlencoded'),u.overrideMimeType&&u.overrideMimeType("application/json");var p=n.customHeaders;if(p)for(var h in p)u.setRequestHeader(h,p[h]);u.onreadystatechange=function(){u.readyState>3&&o&&o(u.responseText,u)},u.send(l)}catch(t){console&&console.log(t)}}var v=(function(){function t(o){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n(this,t),this.init(o,s),this.type='backend'}return o(t,[{key:"init",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.services=t,this.options=p(n,this.options||{},{loadPath:'/locales/{{lng}}/{{ns}}.json',addPath:'/locales/add/{{lng}}/{{ns}}',allowMultiLoading:!1,parse:JSON.parse,crossDomain:!1,ajax:h})}},{key:"readMulti",value:function(t,n,o){var s=this.options.loadPath;'function'==typeof this.options.loadPath&&(s=this.options.loadPath(t,n));var l=this.services.interpolator.interpolate(s,{lng:t.join('+'),ns:n.join('+')});this.loadUrl(l,o)}},{key:"read",value:function(t,n,o){var s=this.options.loadPath;'function'==typeof this.options.loadPath&&(s=this.options.loadPath([t],[n]));var l=this.services.interpolator.interpolate(s,{lng:t,ns:n});this.loadUrl(l,o)}},{key:"loadUrl",value:function(t,n){var o=this;this.options.ajax(t,this.options,function(s,l){if(l.status>=500&&l.status<600)return n('failed loading '+t,!0);if(l.status>=400&&l.status<500)return n('failed loading '+t,!1);var c,u;try{c=o.options.parse(s,t)}catch(n){u='failed parsing '+t+' to json'}if(u)return n(u,!1);n(null,c)})}},{key:"create",value:function(t,n,o,s){var l=this;'string'==typeof t&&(t=[t]);var c={};c[o]=s||'',t.forEach(function(t){var o=l.services.interpolator.interpolate(l.options.addPath,{lng:t,ns:n});l.options.ajax(o,l.options,function(t,n){},c)})}}]),t})();v.type='backend',m.exports=v},750,[751,752,753]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},751,[]);
__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o<t.length;o++){var u=t[o];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(n,u.key,u)}}m.exports=function(t,o,u){return o&&n(t.prototype,o),u&&n(t,u),t}},752,[]);
__d(function(g,r,i,a,m,e,d){function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof o})(t)}function t(n){return"function"==typeof Symbol&&"symbol"===o("function"==typeof Symbol?Symbol.iterator:"@@iterator")?m.exports=t=function(t){return o(t)}:m.exports=t=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":o(t)},t(n)}m.exports=t},753,[]);
__d(function(a,n,i,e,r,s,h){r.exports={en:"English",af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",ca:"Catalan",cs:"Czech",da:"Danish",de:"German",el:"Greek",enGB:"English (United Kingdom)",eo:"Esperanto",es:"Spanish",esUS:"Spanish (Latin America)",et:"Estonian",eu:"Basque",fi:"Finnish",fr:"French",frCA:"French (Canadian)",he:"Hebrew",mr:"Marathi",hr:"Croatian",hu:"Hungarian",hy:"Armenian",id:"Indonesian",it:"Italian",ja:"Japanese",kab:"Kabyle",ko:"Korean",lt:"Lithuanian",nl:"Dutch",oc:"Occitan",pl:"Polish",ptBR:"Portuguese (Brazil)",ru:"Russian",ro:"Romanian",sc:"Sardinian",sk:"Slovak",sl:"Slovenian",sv:"Swedish",th:"Thailand",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",zhCN:"Chinese (China)",zhTW:"Chinese (Taiwan)"}},754,[]);
__d(function(e,o,t,i,n,r,a){n.exports={addPeople:{add:"Invite",addContacts:"Invite your contacts",copyInvite:"Copy meeting invitation",copyLink:"Copy meeting link",copyStream:"Copy live streaming link",countryNotSupported:"We do not support this destination yet.",countryReminder:"Calling outside the US? Please make sure you start with the country code!",defaultEmail:"Your Default Email",disabled:"You can't invite people.",failedToAdd:"Failed to add participants",footerText:"Dialing out is disabled.",googleEmail:"Google Email",inviteMoreHeader:"You are the only one in the meeting",inviteMoreMailSubject:"Join {{appName}} meeting",inviteMorePrompt:"Invite more people",linkCopied:"Link copied to clipboard",loading:"Searching for people and phone numbers",loadingNumber:"Validating phone number",loadingPeople:"Searching for people to invite",noResults:"No matching search results",noValidNumbers:"Please enter a phone number",outlookEmail:"Outlook Email",searchNumbers:"Add phone numbers",searchPeople:"Search for people",searchPeopleAndNumbers:"Search for people or add their phone numbers",shareInvite:"Share meeting invitation",shareLink:"Share the meeting link to invite others",shareStream:"Share the live streaming link",telephone:"Telephone: {{number}}",title:"Invite people to this meeting",yahooEmail:"Yahoo Email"},audioDevices:{bluetooth:"Bluetooth",headphones:"Headphones",phone:"Phone",speaker:"Speaker",none:"No audio devices available"},audioOnly:{audioOnly:"Low bandwidth"},calendarSync:{addMeetingURL:"Add a meeting link",confirmAddLink:"Do you want to add a Jitsi link to this event?",error:{appConfiguration:"Calendar integration is not properly configured.",generic:"An error has occurred. Please check your calendar settings or try refreshing the calendar.",notSignedIn:"An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."},join:"Join",joinTooltip:"Join the meeting",nextMeeting:"next meeting",noEvents:"There are no upcoming events scheduled.",ongoingMeeting:"ongoing meeting",permissionButton:"Open settings",permissionMessage:"The Calendar permission is required to see your meetings in the app.",refresh:"Refresh calendar",today:"Today"},chat:{error:"Error: your message was not sent. Reason: {{error}}",fieldPlaceHolder:"Type your message here",messagebox:"Type a message",messageTo:"Private message to {{recipient}}",noMessagesMessage:"There are no messages in the meeting yet. Start a conversation here!",nickname:{popover:"Choose a nickname",title:"Enter a nickname to use chat"},privateNotice:"Private message to {{recipient}}",title:"Chat",you:"you"},chromeExtensionBanner:{installExtensionText:"Install the extension for Google Calendar and Office 365 integration",buttonText:"Install Chrome Extension",dontShowAgain:"Don\u2019t show me this again"},connectingOverlay:{joiningRoom:"Connecting you to your meeting..."},connection:{ATTACHED:"Attached",AUTHENTICATING:"Authenticating",AUTHFAIL:"Authentication failed",CONNECTED:"Connected",CONNECTING:"Connecting",CONNFAIL:"Connection failed",DISCONNECTED:"Disconnected",DISCONNECTING:"Disconnecting",ERROR:"Error",FETCH_SESSION_ID:"Obtaining session-id...",GET_SESSION_ID_ERROR:"Get session-id error: {{code}}",GOT_SESSION_ID:"Obtaining session-id... Done",LOW_BANDWIDTH:"Video for {{displayName}} has been turned off to save bandwidth"},connectionindicator:{address:"Address:",bandwidth:"Estimated bandwidth:",bitrate:"Bitrate:",bridgeCount:"Server count: ",codecs:"Codecs (A/V): ",connectedTo:"Connected to:",e2e_rtt:"E2E RTT:",framerate:"Frame rate:",less:"Show less",localaddress:"Local address:",localaddress_plural:"Local addresses:",localport:"Local port:",localport_plural:"Local ports:",maxEnabledResolution:"send max",more:"Show more",packetloss:"Packet loss:",quality:{good:"Good",inactive:"Inactive",lost:"Lost",nonoptimal:"Nonoptimal",poor:"Poor"},remoteaddress:"Remote address:",remoteaddress_plural:"Remote addresses:",remoteport:"Remote port:",remoteport_plural:"Remote ports:",resolution:"Resolution:",status:"Connecti
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),c=r(d[2]),u=t(r(d[3])),l=Object.keys(u.default),n={cacheUserLanguage:Function.prototype,detect:function(){var t=c.NativeModules.LocaleDetector.locale.replace(/_/,'-').split('-'),u=(0,o.default)(t,2),n=u[0],p=""+n+u[1];return l.includes(p)?p:n},init:Function.prototype,type:'languageDetector'};e.default=n},756,[3,25,15,754]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),u={af:{languages:r(d[2]),main:r(d[3])},ar:{languages:r(d[4]),main:r(d[5])},bg:{languages:r(d[6]),main:r(d[7])},ca:{languages:r(d[8]),main:r(d[9])},de:{languages:r(d[10]),main:r(d[11])},enGB:{languages:r(d[12]),main:r(d[13])},eo:{languages:r(d[14]),main:r(d[15])},es:{languages:r(d[16]),main:r(d[17])},esUS:{languages:r(d[18]),main:r(d[19])},et:{languages:r(d[20]),main:r(d[21])},fi:{languages:r(d[22]),main:r(d[23])},fr:{languages:r(d[24]),main:r(d[25])},frCA:{languages:r(d[26]),main:r(d[27])},hr:{languages:r(d[28]),main:r(d[29])},hu:{languages:r(d[30]),main:r(d[31])},it:{languages:r(d[32]),main:r(d[33])},ja:{languages:r(d[34]),main:r(d[35])},ko:{languages:r(d[36]),main:r(d[37])},nl:{languages:r(d[38]),main:r(d[39])},oc:{languages:r(d[40]),main:r(d[41])},pl:{languages:r(d[42]),main:r(d[43])},ptBR:{languages:r(d[44]),main:r(d[45])},sc:{languages:r(d[46]),main:r(d[47])},ro:{languages:r(d[48]),main:r(d[49])},ru:{languages:r(d[50]),main:r(d[51])},sk:{languages:r(d[52]),main:r(d[53])},sv:{languages:r(d[54]),main:r(d[55])},sl:{languages:r(d[56]),main:r(d[57])},tr:{languages:r(d[58]),main:r(d[59])},vi:{languages:r(d[60]),main:r(d[61])},zhCN:{languages:r(d[62]),main:r(d[63])},zhTW:{languages:r(d[64]),main:r(d[65])},mn:{languages:r(d[66]),main:r(d[67])}};for(var s in u){var l=u[s],f=l.languages,o=l.main;n.default.addResourceBundle(s,'languages',f,!0,!0),n.default.addResourceBundle(s,'main',o,!0,!0)}},757,[3,731,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823]);
__d(function(s,e,a,n,i,o,r){i.exports={en:"Engels",af:"",az:"Azerbeidjans",bg:"Bulgaars",cs:"Tsjeggies",de:"Duits",el:"Grieks",eo:"Esperanto",es:"Spaans",fr:"Frans",hy:"Armeens",it:"Italiaans",ja:"Japannees",ko:"Koreaans",nb:"Bokmal-Noorweegs",oc:"Oksitaans",pl:"Pools",ptBR:"Portugees (Brasili\xeb)",ru:"Russies",sk:"Slowaaks",sl:"Sloweens",sv:"Sweeds",tr:"Turks",vi:"Vi\xebtnamees",zhCN:"Sjinees (Sjina)"}},758,[]);
__d(function(e,i,n,o,r,a,t){r.exports={addPeople:{add:"Nooi uit",countryNotSupported:"Ons ondersteun nog nie di\xe9 bestemming nie.",countryReminder:"",disabled:"U kan nie mense nooi nie.",failedToAdd:"",footerText:"",loading:"",loadingNumber:"Valideer tans foonnommer",loadingPeople:"",noResults:"Geen soekresultate wat pas nie",noValidNumbers:"Gee asseblief \u2019n foonnommer",searchNumbers:"Voeg foonnommers by",searchPeople:"Soek mense",searchPeopleAndNumbers:"Soek mense of voeg hulle foonnommers by",telephone:"Telefoon: {{number}}",title:"Nooi mense na di\xe9 vergadering"},audioDevices:{bluetooth:"Bluetooth",headphones:"Oorfone",phone:"Foon",speaker:"Luidspreker"},audioOnly:{audioOnly:"Net klank"},calendarSync:{addMeetingURL:"Voeg \u2019n vergaderingskakel by",confirmAddLink:"Wil u \u2019n Jitsi-skakel by di\xe9 geleentheid voeg?",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"Sluit aan",joinTooltip:"Sluit aan by die vergadering",nextMeeting:"volgende vergadering",noEvents:"Geen komende geleenthede is geskeduleer nie.",ongoingMeeting:"vergadering onderweg",permissionButton:"Open instellings",permissionMessage:"",refresh:"Verfris kalender",today:"Vandag"},chat:{error:"",messagebox:"",nickname:{popover:"Kies \u2019n bynaam",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"",AUTHENTICATING:"Verifieer",AUTHFAIL:"",CONNECTED:"Gekoppel",CONNECTING:"Koppel tans",CONNFAIL:"Koppeling het misluk",DISCONNECTED:"Ontkoppeld",DISCONNECTING:"Ontkoppel tans",ERROR:"Fout",RECONNECTING:"\u2019n Netwerkprobleem het voorgekom. Herkoppel tans..."},connectionindicator:{address:"Adres:",bandwidth:"Geraamde bandwydte:",bitrate:"Bistempo:",bridgeCount:"Aantal bedieners: ",connectedTo:"Gekoppel aan:",framerate:"Raampietempo:",less:"Wys minder",localaddress:"Plaaslike adres:",localaddress_plural:"Plaaslike adresse:",localport:"Plaaslike poort:",localport_plural:"Plaaslike poorte:",more:"Wys meer",packetloss:"Pakkies verloor:",quality:{good:"Goed",inactive:"Onaktief",lost:"",nonoptimal:"",poor:"Swak"},remoteaddress:"Afgele\xeb adres:",remoteaddress_plural:"Afgele\xeb adresse:",remoteport:"Afgele\xeb poort:",remoteport_plural:"Afgele\xeb poorte:",resolution:"Resolusie:",status:"Verbinding:",transport:"",transport_plural:"",turn:""},dateUtils:{earlier:"Vroe\xebr",today:"Vandag",yesterday:"Gister"},deepLinking:{appNotInstalled:"",description:"",descriptionWithoutWeb:"",downloadApp:"",launchWebButton:"",openApp:"",title:"",tryAgainButton:""},defaultLink:"bv. {{url}}",deviceError:{cameraError:"Toegang na u kamera het misluk",cameraPermission:"Fout met verkryging van kameratoestemming",microphoneError:"Toegang na u mikrofoon het misluk",microphonePermission:"Fout met verkryging van mikrofoontoestemming"},deviceSelection:{noPermission:"Toestemming nie gegee nie",previewUnavailable:"Voorskou nie beskikbaar nie",selectADevice:"Kies 'n toestel",testAudio:"Speel \u2019n toetsklank"},dialog:{accessibilityLabel:{liveStreaming:"Regstreekse stroom"},allow:"Laat toe",alreadySharedVideoMsg:"",alreadySharedVideoTitle:"Slegs een gedeelde video op \u2019n slag word toegelaat",applicationWindow:"Toepassingsvenster",Back:"Terug",cameraConstraintFailedError:"Die kamera voldoen nie aan sekere van die vereistes nie.",cameraNotFoundError:"Kamera is nie gevind nie.",cameraNotSendingData:"Ons kry nie toegang tot u kamera nie. Kontroleer of \u2019n ander toepassing di\xe9 toestel gebruik, kies asb. \u2019n ander toestel by die instellingskieslys of probeer om die toepassing op nuut te laai.",cameraNotSendingDataTitle:"Kan nie toegang tot kamera kry nie",cameraPermissionDeniedError:"U het nie toestemming gegee om u kamera te gebruik nie. U kan steeds by die konferensie aansluit, maar ander sal u nie kan sien nie. Gebruik die kameraknoppie in die adresbalk om dit reg te stel.",cameraUnknownError:"Kan weens onbekende rede nie die kamera gebruik nie.",cameraUnsupportedResolutionError:"Die kamera ondersteun nie die nodige videoresolusie nie.",Cancel:"Kanselleer",close:"Sluit",conferenceDisconnectMsg:"Kontroleer dalk die netwerkverbinding.
__d(function(e,t,h,s,r,c,f){r.exports={en:"\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629",af:"\u0627\u0644\u0623\u0641\u0631\u064a\u0643\u0627\u0646\u064a\u0629",bg:"\u0627\u0644\u0628\u0644\u063a\u0627\u0631\u064a\u0629",ca:"\u0627\u0644\u0643\u0627\u062a\u0627\u0644\u0627\u0646\u064a\u0629",cs:"\u0627\u0644\u062a\u0634\u064a\u0643\u064a\u0629",da:"\u0627\u0644\u062f\u0646\u0645\u0627\u0631\u0643\u064a\u0629",de:"\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629",el:"\u0627\u0644\u064a\u0648\u0646\u0627\u0646\u064a\u0629",enGB:"\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 (\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629)",eo:"\u0627\u0644\u0625\u0633\u0628\u0631\u0627\u0646\u062a\u0648",es:"\u0627\u0644\u0625\u0633\u0628\u0627\u0646\u064a\u0629",esUS:"\u0627\u0644\u0625\u0633\u0628\u0627\u0646\u064a\u0629 (\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629)",et:"\u0627\u0644\u0625\u0633\u062a\u0648\u0646\u064a\u0629",fi:"\u0627\u0644\u0641\u0646\u0644\u0646\u062f\u064a\u0629",fr:"\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629",frCA:"\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 (\u0627\u0644\u0643\u0646\u062f\u064a\u0629)",hr:"\u0627\u0644\u0643\u0631\u0648\u0627\u062a\u064a\u0629",hu:"\u0627\u0644\u0647\u0646\u063a\u0627\u0631\u064a\u0629",hy:"\u0627\u0644\u0623\u0631\u0645\u0646\u064a\u0629",it:"\u0627\u0644\u0625\u064a\u0637\u0627\u0644\u064a\u0629",ja:"\u0627\u0644\u064a\u0627\u0628\u0627\u0646\u064a\u0629",ko:"\u0627\u0644\u0643\u0648\u0631\u064a\u0629",nl:"\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629",oc:"\u0627\u0644\u0642\u0633\u0637\u0627\u0646\u064a\u0629",pl:"\u0627\u0644\u0628\u0648\u0644\u0646\u062f\u064a\u0629",ptBR:"\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629 (\u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644)",ru:"\u0627\u0644\u0631\u0648\u0633\u064a\u0629",sv:"\u0627\u0644\u0633\u0648\u064a\u062f\u064a\u0629",tr:"\u0627\u0644\u062a\u0631\u0643\u064a\u0629",vi:"\u0627\u0644\u0641\u064a\u062a\u0646\u0627\u0645\u064a\u0629",zhCN:"\u0627\u0644\u0635\u064a\u0646\u064a\u0629 (\u0627\u0644\u0635\u064a\u0646)",zhTW:"\u0627\u0644\u0635\u064a\u0646\u064a\u0629 (\u062a\u0627\u064a\u0648\u0627\u0646)",th:"\u0627\u0644\u062a\u0627\u064a\u0644\u0646\u062f\u064a\u0629",sc:"\u0627\u0644\u0633\u0631\u062f\u064a\u0646\u064a\u0629",eu:"\u0627\u0644\u0628\u0627\u0633\u0643\u064a\u0629",uk:"\u0627\u0644\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0629",sk:"\u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0629",lt:"\u0627\u0644\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0629",id:"\u0627\u0644\u0625\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0629",he:"\u0627\u0644\u0639\u0628\u0631\u064a\u0629"}},760,[]);
__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u0623\u0631\u0633\u0644 \u062f\u0639\u0648\u0629",countryNotSupported:"\u0646\u062d\u0646 \u0644\u0627 \u0646\u062f\u0639\u0645 \u0647\u0630\u0647 \u0627\u0644\u0648\u062c\u0647\u0629 \u0628\u0639\u062f.",countryReminder:"",disabled:"\u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062f\u0639\u0648\u0629 \u0623\u0634\u062e\u0627\u0635.",failedToAdd:"\u0623\u062e\u0641\u0642\u062a \u0639\u0645\u0644\u064a\u0629 \u0625\u0636\u0627\u0641\u0629 \u0645\u0634\u0627\u0631\u0650\u0643\u064a\u0646",footerText:"\u0627\u0644\u0645\u0643\u0627\u0644\u0645\u0627\u062a \u0627\u0644\u062e\u0627\u0631\u062c\u0629 \u063a\u064a\u0631 \u0645\u0641\u0639\u0651\u0644\u0629.",loading:"\u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0623\u0634\u062e\u0627\u0635 \u0648\u0623\u0631\u0642\u0627\u0645 \u0647\u0648\u0627\u062a\u0641",loadingNumber:"\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0629 \u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641",loadingPeople:"\u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0623\u0634\u062e\u0627\u0635 \u0644\u062f\u0639\u0648\u062a\u0647\u0645",noResults:"\u0644\u064a\u0633 \u0647\u0646\u0627\u0643 \u0623\u064a\u0629 \u0646\u062a\u0627\u0626\u062c \u0628\u062d\u062b \u0645\u0637\u0627\u0628\u0642\u0629",noValidNumbers:"\u064a\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062a\u0641",searchNumbers:"\u0625\u0636\u0627\u0641\u0629 \u0623\u0631\u0642\u0627\u0645 \u0647\u0648\u0627\u062a\u0641",searchPeople:"\u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0634\u062e\u0635",searchPeopleAndNumbers:"\u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0623\u0634\u062e\u0627\u0635 \u0623\u0648 \u0625\u0636\u0627\u0641\u0629 \u0623\u0631\u0642\u0627\u0645 \u0647\u0648\u0627\u062a\u0641\u0647\u0645",telephone:"\u0627\u0644\u0647\u0627\u062a\u0641: {{number}}",title:"\u062f\u0639\u0648\u0629 \u0634\u062e\u0635 \u0625\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0625\u062c\u062a\u0645\u0627\u0639"},audioDevices:{bluetooth:"\u0628\u0644\u0648\u062a\u0648\u062b",headphones:"\u0633\u0645\u0627\u0639\u0627\u062a \u0627\u0644\u0631\u0623\u0633",phone:"\u0627\u0644\u0647\u0627\u062a\u0641",speaker:"\u0627\u0644\u0645\u062a\u062d\u062f\u062b",none:"\u0644\u0627 \u062a\u0648\u062c\u062f \u0623\u062c\u0647\u0632\u0629 \u0635\u0648\u062a\u064a\u0629 \u0645\u062a\u0627\u062d\u0629"},audioOnly:{audioOnly:"\u0646\u0637\u0627\u0642 \u062a\u0631\u062f\u062f\u064a \u0639\u0631\u064a\u0636 \u0645\u0646\u062e\u0641\u0636"},calendarSync:{addMeetingURL:"\u0625\u0636\u0627\u0641\u0629 \u0631\u0627\u0628\u0637 \u0644\u0644\u0627\u062c\u062a\u0645\u0627\u0639",confirmAddLink:"\u0647\u0644 \u062a\u0631\u064a\u062f \u0625\u0636\u0627\u0641\u0629 \u0631\u0627\u0628\u0637 Jitsi \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0641\u0639\u0627\u0644\u064a\u0629\u061f",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"\u0627\u0646\u0636\u0645\u0651",joinTooltip:"\u0627\u0644\u0627\u0646\u0636\u0645\u0627\u0645 \u0625\u0644\u0649 \u0627\u0644\u0627\u062c\u062a\u0645\u0627\u0639",nextMeeting:"\u0627\u0644\u0627\u062c\u062a\u0645\u0627\u0639 \u0627\u0644\u0642\u0627\u062f\u0645",noEvents:"\u0644\u0627 \u062a\u0648\u062c\u062f \u0647\u0646\u0627\u0643 \u0641\u0639\u0627\u0644\u064a\u0627\u062a \u0642\u0627\u062f\u0645\u0629 \u0645\u064f\u0628\u0631\u0645\u064e\u062c\u0629.",ongoingMeeting:"\u0627\u0644\u0625\u062c\u062a\u0645\u0627\u0639 \u0627\u0644\u062c\u0627\u0631\u064a",permissionButton:"\u0627\u0641\u062a\u062d \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a",permissionMessage:"\u0625\u0630\u0646 \u0627\u0644\u062a\u0642\u0648\u064a\u0645 \u0645\u0637\u0644\u0648\u0628 \u0644\u0631\u0624\u064a\u0629 \u0627\u062c\u062a\u0645\u0627\u0639\u0627\u062a\u0643 \u0641\u064a \u0627\u0644\u062a\u0637\u0628\u064a\u0642.",refresh:"\u062a\u062d\u062f\u064a\u062b \u0627\u0644\u062a\u0642\u0648\u064a\u0645",today:"\u0627\u0644\u064a\u0648\u0645"},chat:{error:"",fieldPlaceHolder:"\u0627\u0643\u062a\u0628 \u0631\u0633\u0627\u0644\u062a\
__d(function(e,r,f,h,n,o,s){n.exports={en:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438",af:"\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441",bg:"\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",ca:"\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438",cs:"\u0427\u0435\u0448\u043a\u0438",de:"\u041d\u0435\u043c\u0441\u043a\u0438",el:"\u0413\u0440\u044a\u0446\u043a\u0438",enGB:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)",eo:"\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e",es:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438",esUS:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438 (\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430)",fi:"\u0424\u0438\u043d\u0441\u043a\u0438",fr:"\u0424\u0440\u0435\u043d\u0441\u043a\u0438",frCA:"\u0424\u0440\u0435\u043d\u0441\u043a\u0438 (\u041a\u0430\u043d\u0430\u0434\u0430)",hr:"\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438",hu:"\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0438",hy:"\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438",it:"\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438",ja:"\u042f\u043f\u043e\u043d\u0441\u043a\u0438",ko:"\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438",nl:"\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438",oc:"\u041e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438",pl:"\u041f\u043e\u043b\u0441\u043a\u0438",ptBR:"\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)",ru:"\u0420\u0443\u0441\u043a\u0438",sv:"\u0428\u0432\u0435\u0434\u0441\u043a\u0438",tr:"\u0422\u0443\u0440\u0441\u043a\u0438",vi:"\u0412\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438",zhCN:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 (\u041a\u0438\u0442\u0430\u0439)",zhTW:"\u0422\u0430\u0439\u0432\u0430\u043d\u0441\u043a\u0438"}},762,[]);
__d(function(e,o,i,r,t,n,a){t.exports={addPeople:{add:"\u041f\u043e\u043a\u0430\u043d\u0438",countryNotSupported:"\u0416\u0435\u043b\u0430\u043d\u0430\u0442\u0430 \u0434\u0435\u0441\u0442\u0438\u043d\u0430\u0446\u0438\u044f \u043d\u0435 \u0441\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430.",countryReminder:"\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u043e \u043e\u0431\u0430\u0436\u0434\u0430\u043d\u0435? \u0417\u0430\u043f\u043e\u0447\u043d\u0435\u0442\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0441 \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u0438\u044f\u0442 \u043a\u043e\u0434!",disabled:"\u041d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043a\u0430\u043d\u0438\u0442\u0435 \u0445\u043e\u0440\u0430.",failedToAdd:"\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438",footerText:"\u0418\u0437\u0445\u043e\u0434\u044f\u0449\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438 \u043d\u0435 \u0441\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438.",loading:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430 \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u0438 \u043d\u043e\u043c\u0435\u0440\u0430",loadingNumber:"\u0412\u0430\u043b\u0438\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430",loadingPeople:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430",noResults:"\u041d\u044f\u043c\u0430 \u0440\u0435\u0437\u0443\u043b\u0442\u0430\u0442\u0438",noValidNumbers:"\u041c\u043e\u043b\u044f \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435\u043d \u043d\u043e\u043c\u0435\u0440",searchNumbers:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430",searchPeople:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0445\u043e\u0440\u0430",searchPeopleAndNumbers:"\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0441 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438 \u043d\u043e\u043c\u0435\u0440\u0430",telephone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d: {{number}}",title:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0438 \u0432 \u0441\u0440\u0435\u0449\u0430\u0442\u0430"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u0421\u043b\u0443\u0448\u0430\u043b\u043a\u0438",phone:"\u0422\u0435\u043b\u0435\u0444\u043e\u043d",speaker:"\u0413\u043e\u0432\u043e\u0440\u0435\u0449",none:"\u041d\u044f\u043c\u0430 \u043d\u0430\u043b\u0438\u0447\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0437\u0430 \u0437\u0432\u0443\u043a"},audioOnly:{audioOnly:"\u041d\u0438\u0441\u044a\u043a \u0434\u0435\u0431\u0438\u0442"},calendarSync:{addMeetingURL:"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0432\u0440\u044a\u0437\u043a\u0430 \u0437\u0430 \u0441\u0440\u0435\u0449\u0430",confirmAddLink:"\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0430 \u043a\u044a\u043c \u0442\u043e\u0432\u0430 \u0441\u044a\u0431\u0438\u0442\u0438\u0435?",error:{appConfiguration:"\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430 \u0441 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u043d\u0435 \u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430.",generic:"\u0413\u0440\u0435\u0448\u043a\u0430, \u043c\u043e\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0442\u0430 \u0437\u0430 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0430 \u0438\u043b\u0438 \u0433\u043e \u043e\u0431\u043d\u043e\u0432\u0435\u0442\u0435.",notSigned
__d(function(a,n,s,r,e,i,o){e.exports={en:"Angl\xe8s",af:"Afrikaans",ar:"\xc0rab",bg:"B\xfalgar",ca:"Catal\xe0",cs:"Txec",da:"Dan\xe8s",de:"Alemany",el:"Grec",enGB:"Angl\xe8s (Regne Unit)",eo:"Esperanto",es:"Espanyol",esUS:"Espanyol (Am\xe8rica Llatina)",et:"Estoni\xe0",eu:"\xc8uscar",fi:"Fin\xe8s",fr:"Franc\xe8s",frCA:"Franc\xe8s (Canad\xe0)",he:"Hebreu",mr:"Marathi",hr:"Croat",hu:"Hongar\xe8s",hy:"Armeni",id:"Indonesi",it:"Itali\xe0",ja:"Japon\xe8s",ko:"Core\xe0",lt:"Litu\xe0",nl:"Neerland\xe8s",oc:"Occit\xe0",pl:"Polon\xe8s",ptBR:"Portugu\xe8s (Brasil)",ru:"Rus",ro:"Roman\xe8s",sc:"Sard",sk:"Eslovac",sl:"Eslov\xe8",sv:"Suec",th:"Tai",tr:"Turc",uk:"Ucra\xefn\xe8s",vi:"Vietnamita",zhCN:"Xin\xe8s (Xina)",zhTW:"Xin\xe8s (Taiwan)"}},764,[]);
__d(function(e,a,i,r,n,t,o){n.exports={addPeople:{add:"Convida",countryNotSupported:"Encara no \xe9s possible usar aquesta destinaci\xf3.",countryReminder:"Truqueu des de fora els EUA? Assegureu-vos que comenceu b el codi de pa\xeds!",disabled:"No podeu convidar-hi persones.",failedToAdd:"No s'han pogut afegir-hi participants",footerText:"La marcaci\xf3 est\xe0 desactivada.",loading:"S'estan cercant persones i n\xfameros de tel\xe8fon",loadingNumber:"S'est\xe0 validant el n\xfamero de tel\xe8fon",loadingPeople:"S'estan cercant les persones a convidar",noResults:"No s'ha trobat cap resultat coincident",noValidNumbers:"Introdu\xefu un n\xfamero de tel\xe8fon",searchNumbers:"Afegeix-hi n\xfameros de tel\xe8fon",searchPeople:"Cerca-hi persones",searchPeopleAndNumbers:"Cerca persones o n'afegeix els n\xfameros de tel\xe8fon",telephone:"Tel\xe8fon: {{number}}",title:"Convida persones a aquesta reuni\xf3"},audioDevices:{bluetooth:"Bluetooth",headphones:"Auriculars",phone:"Tel\xe8fon",speaker:"Altaveu",none:"No hi ha disponible cap aparell d'\xe0udio"},audioOnly:{audioOnly:"Poc ample de banda"},calendarSync:{addMeetingURL:"Afegeix un enlla\xe7 de reuni\xf3",confirmAddLink:"Voleu afegir un enlla\xe7 Jitsi en aquest esdeveniment?",error:{appConfiguration:"La integraci\xf3 de l'agenda no est\xe0 configurada correctament.",generic:"S'ha produ\xeft un error. Comproveu la configuraci\xf3 de l'agenda o intenteu d'actualitzar-la.",notSignedIn:"S'ha produ\xeft un error en l'autenticaci\xf3 per a visualitzar els esdeveniments del calendari. Reviseu la configuraci\xf3 de l'agenda i intenteu a iniciar la sessi\xf3 m\xe9s endavant."},join:"Afegeix-m'hi",joinTooltip:"Uniu-vos a la reuni\xf3",nextMeeting:"reuni\xf3 seg\xfcent",noEvents:"No hi ha cap esdeveniment previst a l'agenda.",ongoingMeeting:"reuni\xf3 en curs",permissionButton:"Obre la configuraci\xf3",permissionMessage:"Es requereix el perm\xeds d'agenda per a veure les reunions en l'aplicaci\xf3.",refresh:"Actualitza l'agenda",today:"Avui"},chat:{error:"Error: no s'ha enviat el vostre missatge. Ra\xf3: {{error}}",fieldPlaceHolder:"Escriviu aqu\xed el missatge",messagebox:"Escriviu un missatge",messageTo:"Missatge privat per a {{recipient}}",noMessagesMessage:"Encara no hi ha cap missatge en aquesta reuni\xf3. Comenceu una conversa aqu\xed!",nickname:{popover:"Trieu un sobrenom",title:"Introdu\xefu un sobrenom per a usar el xat"},privateNotice:"Missatge privat per a {{recipient}}",title:"Xat",you:"v\xf3s"},chromeExtensionBanner:{installExtensionText:"Instal\xb7la l'extensi\xf3 per a la integraci\xf3 amb Google Calendar i Office 365",buttonText:"Instal\xb7la l'extensi\xf3 de Chrome",dontShowAgain:"No m'ho mostris m\xe9s"},connectingOverlay:{joiningRoom:"S'est\xe0 connectat a la reuni\xf3\u2026"},connection:{ATTACHED:"Adjunt",AUTHENTICATING:"S'est\xe0 autenticant",AUTHFAIL:"L'autenticaci\xf3 ha fallat",CONNECTED:"Connectat",CONNECTING:"S'est\xe0 connectant",CONNFAIL:"La connexi\xf3 ha fallat",DISCONNECTED:"Desconnectat",DISCONNECTING:"S'est\xe0 desconnectant",ERROR:"Error",FETCH_SESSION_ID:"S'est\xe0 obtenint un identificador de sessi\xf3\u2026",GET_SESSION_ID_ERROR:"S'ha produ\xeft un error en obtenir l'identificador de la sessi\xf3: {{code}}",GOT_SESSION_ID:"Obtenci\xf3 d'identificador de sessi\xf3\u2026 Fet",LOW_BANDWIDTH:"S'ha apagat el v\xeddeo de {{displayName}} per a estalviar ample de banda"},connectionindicator:{address:"Adre\xe7a:",bandwidth:"Ample de banda estimat:",bitrate:"Taxa de bits:",bridgeCount:"Nombre de servidors: ",connectedTo:"Connectat a:",e2e_rtt:"E2E RTT:",framerate:"Taxa de fotogrames:",less:"Menys informaci\xf3",localaddress:"Adre\xe7a local:",localaddress_plural:"Adreces locals:",localport:"Port local:",localport_plural:"Ports locals:",more:"M\xe9s informaci\xf3",packetloss:"P\xe8rdua de paquets:",quality:{good:"Bona",inactive:"Inactiva",lost:"Perduda",nonoptimal:"No \xf2ptima",poor:"Pobra"},remoteaddress:"Adre\xe7a remota:",remoteaddress_plural:"Adreces remotes:",remoteport:"Port remot:",remoteport_plural:"Ports remots:",resolution:"Resoluci\xf3:",status:"Co
__d(function(i,s,h,c,n,a,e){n.exports={en:"Englisch",af:"Afrikaans",az:"Aserbaidschanisch",bg:"Bulgarisch",cs:"Tschechisch",de:"Deutsch",el:"Griechisch",eo:"Esperanto",es:"Spanisch",fr:"Franz\xf6sisch",hy:"Armenisch",it:"Italienisch",ja:"Japanisch",ko:"Koreanisch",nb:"Norwegisch (Bokmal)",oc:"Okzitanisch",pl:"Polnisch",ptBR:"Portugiesisch (Brasilien)",ru:"Russisch",sk:"Slowakisch",sl:"Slowenisch",sv:"Schwedisch",tr:"T\xfcrkisch",vi:"Vietnamesisch",zhCN:"Chinesisch (China)",zhTW:"Chinesisch (Taiwan)",nl:"Niederl\xe4ndisch",hu:"Ungarisch",hr:"Kroatisch",frCA:"Franz\xf6sisch (Kanada)",fi:"Finnisch",et:"Estnisch",esUS:"Spanisch (Lateinamerika)",enGB:"Englisch (Vereinigtes K\xf6nigreich)",da:"D\xe4nisch",ca:"Katalanisch"}},766,[]);
__d(function(e,n,i,r,t,a,s){t.exports={addPeople:{add:"Einladen",addContacts:"Laden Sie Ihre Kontakte ein",copyInvite:"Sitzungseinladung kopieren",copyLink:"Konferenzlink kopieren",copyStream:"Livestreaminglink kopieren",countryNotSupported:"Wir unterst\xfctzen dieses Land noch nicht.",countryReminder:"Telefonnummer nicht in den USA? Bitte sicherstellen, dass die Telefonnummer mit dem L\xe4ndercode beginnt.",defaultEmail:"Ihre Standard-E-Mail",disabled:"Sie k\xf6nnen keine Teilnehmer einladen.",failedToAdd:"Fehler beim Hinzuf\xfcgen von Teilnehmern",footerText:"Abgehender Ruf ist deaktiviert.",googleEmail:"Google-E-Mail",inviteMoreHeader:"Sie sind alleine in der Sitzung",inviteMoreMailSubject:"An {{appName}} Meeting teilnehmen",inviteMorePrompt:"Mehr Leute einladen",linkCopied:"Link in die Zwischenablage kopiert",loading:"Suche nach Teilnehmern und Telefonnummern",loadingNumber:"Telefonnummer wird \xfcberpr\xfcft",loadingPeople:"Suche nach einzuladenden Teilnehmern",noResults:"Keine passenden Ergebnisse",noValidNumbers:"Telefonnummer eingeben",outlookEmail:"Outlook-E-Mail",searchNumbers:"Telefonnummern hinzuf\xfcgen",searchPeople:"Nach Teilnehmern suchen",searchPeopleAndNumbers:"Nach Teilnehmen suchen oder deren Telefonnummern hinzuf\xfcgen",shareInvite:"Einladung zur Versammlung teilen",shareLink:"Teilen Sie den Konferenzlink, um andere einzuladen",shareStream:"Den Livestreaminglink freigeben",telephone:"Telefon: {{number}}",title:"Teilnehmer zu dieser Konferenz einladen",yahooEmail:"Yahoo-E-Mail"},audioDevices:{bluetooth:"Bluetooth",headphones:"Kopfh\xf6rer",phone:"H\xf6rer",speaker:"Lautsprecher",none:"Keine Audioger\xe4te verf\xfcgbar"},audioOnly:{audioOnly:"Geringe Bandbreite"},calendarSync:{addMeetingURL:"Konferenzlink hinzuf\xfcgen",confirmAddLink:"M\xf6chten Sie einen Jitsi-Link zu diesem Termin hinzuf\xfcgen?",error:{appConfiguration:"Kalenderintegration ist nicht richtig konfiguriert.",generic:"Ein Fehler ist aufgetreten. Pr\xfcfen Sie Ihre Kalendereinstellungen oder versuchen Sie, den Kalender zu aktualisieren.",notSignedIn:"Ein Fehler ist w\xe4hrend der Authentifizierung zur Anzeige von Kalenderterminen aufgetreten. Pr\xfcfen Sie Ihre Kalendereinstellungen oder versuchen Sie, sich erneut anzumelden."},join:"Teilnehmen",joinTooltip:"Am Meeting teilnehmen",nextMeeting:"N\xe4chste Konferenz",noEvents:"Es gibt keine bevorstehenden Termine.",ongoingMeeting:"Laufendes Meeting",permissionButton:"Einstellungen \xf6ffnen",permissionMessage:"Die App ben\xf6tigt Zugriff auf den Kalender, um Termine und Konferenzen anzuzeigen.",refresh:"Kalender aktualisieren",today:"Heute"},chat:{error:"Fehler: Ihre Nachricht wurde nicht versendet. Grund: {{error}}",fieldPlaceHolder:"Geben Sie Ihre Nachricht hier ein",messagebox:"Nachricht eingeben",messageTo:"Private Nachricht an {{recipient}}",noMessagesMessage:"Es gibt noch keine Nachricht in dieser Konferenz. Starten Sie hier eine Unterhaltung!",nickname:{popover:"Name",title:"Geben Sie einen Alias zum Chatten ein"},privateNotice:"Private Nachricht an {{recipient}}",title:"Chatten",you:"Sie"},chromeExtensionBanner:{installExtensionText:"Installieren Sie die Erweiterung f\xfcr die Integration von Google Calendar und Office 365",buttonText:"Chrome-Erweiterung installieren",dontShowAgain:"Hinweis nicht mehr anzeigen"},connectingOverlay:{joiningRoom:"Eine Verbindung zu Ihrem Meeting wird hergestellt\u2026"},connection:{ATTACHED:"Angeh\xe4ngt",AUTHENTICATING:"Authentifizierung l\xe4uft",AUTHFAIL:"Authentifizierung fehlgeschlagen",CONNECTED:"Verbunden",CONNECTING:"Verbindung wird hergestellt",CONNFAIL:"Verbindungsaufbau gescheitert",DISCONNECTED:"Getrennt",DISCONNECTING:"Verbindung wird getrennt",ERROR:"Fehler",FETCH_SESSION_ID:"Sitzungs-ID abrufen\xa0\u2026",GET_SESSION_ID_ERROR:"Sitzungs-ID-Fehler erhalten: {{code}}",GOT_SESSION_ID:"Sitzungs-ID abrufen\xa0\u2026 beendet",LOW_BANDWIDTH:"Video f\xfcr {{displayName}} wurde ausgeschaltet, um Bandbreite einzusparen"},connectionindicator:{address:"Adresse:",bandwidth:"Gesch\xe4tzte Bandbreite:",bitrate:"Bitrate:",bridgeCount:"Serverzahl: ",c
__d(function(n,a,i,e,s,h,r){s.exports={en:"English",af:"Afrikaans",az:"",bg:"Bulgarian",cs:"Czech",de:"German",el:"Greek",eo:"Esperanto",es:"Spanish",fr:"French",hy:"Armenian",it:"Italian",ja:"Japanese",ko:"Korean",nb:"",oc:"Occitan",pl:"Polish",ptBR:"Portuguese (Brazil)",ru:"Russian",sk:"",sl:"Slovenian",sv:"Swedish",tr:"Turkish",vi:"Vietnamese",zhCN:"Chinese (China)",zhTW:"Chinese (Taiwan)",nl:"Dutch",hu:"Hungarian",hr:"Croatian",frCA:"French (Canadian)",fi:"Finnish",et:"Estonian",esUS:"Spanish (Latin America)",enGB:"English (United Kingdom)",da:"Danish",ca:"Catalan"}},768,[]);
__d(function(e,o,t,r,n,i,a){n.exports={addPeople:{add:"Invite",countryNotSupported:"We do not support this destination yet.",countryReminder:"Calling outside the US? Please make sure you start with the country code!",disabled:"You can't invite people.",failedToAdd:"Failed to add members",footerText:"Dialling out is disabled.",loading:"Searching for people and phone numbers",loadingNumber:"Validating phone number",loadingPeople:"Searching for people to invite",noResults:"No matching search results",noValidNumbers:"Please enter a phone number",searchNumbers:"Add phone numbers",searchPeople:"Search for people",searchPeopleAndNumbers:"Search for people or add their phone numbers",telephone:"Telephone: {{number}}",title:"Invite people to this meeting"},audioDevices:{bluetooth:"Bluetooth",headphones:"Headphones",phone:"Phone",speaker:"Speaker",none:""},audioOnly:{audioOnly:"Audio only"},calendarSync:{addMeetingURL:"Add a meeting link",confirmAddLink:"Do you want to add a Jitsi link to this event?",error:{appConfiguration:"Calendar integration is not properly configured.",generic:"An error has occurred. Please check your calendar settings or try refreshing the calendar.",notSignedIn:"An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."},join:"Join",joinTooltip:"Join the meeting",nextMeeting:"next meeting",noEvents:"There are no upcoming events scheduled.",ongoingMeeting:"ongoing meeting",permissionButton:"Open settings",permissionMessage:"The Calendar permission is required to see your meetings in the app.",refresh:"Refresh calendar",today:"Today"},chat:{error:"Error: your message \"{{originalText}}\" was not sent. Reason: {{error}}",messagebox:"Type a message",nickname:{popover:"Choose a nickname",title:"Enter a nickname to use chat"},title:"Chat",you:"",privateNotice:"",noMessagesMessage:"",messageTo:"",fieldPlaceHolder:""},connectingOverlay:{joiningRoom:"Connecting you to your meeting\u2026"},connection:{ATTACHED:"Attached",AUTHENTICATING:"Authenticating",AUTHFAIL:"Authentication failed",CONNECTED:"Connected",CONNECTING:"Connecting",CONNFAIL:"Connection failed",DISCONNECTED:"Disconnected",DISCONNECTING:"Disconnecting",ERROR:"Error",RECONNECTING:"A network problem occurred. Reconnecting...",LOW_BANDWIDTH:"",GOT_SESSION_ID:"",GET_SESSION_ID_ERROR:"",FETCH_SESSION_ID:""},connectionindicator:{address:"Address:",bandwidth:"Estimated bandwidth:",bitrate:"Bitrate:",bridgeCount:"Server count: ",connectedTo:"Connected to:",framerate:"Frame rate:",less:"Show less",localaddress:"Local address:",localaddress_plural:"Local addresses:",localport:"Local port:",localport_plural:"Local ports:",more:"Show more",packetloss:"Packet loss:",quality:{good:"Good",inactive:"Inactive",lost:"Lost",nonoptimal:"Nonoptimal",poor:"Poor"},remoteaddress:"Remote address:",remoteaddress_plural:"Remote addresses:",remoteport:"Remote port:",remoteport_plural:"Remote ports:",resolution:"Resolution:",status:"Connection:",transport:"Transport:",transport_plural:"Transports:",turn:" (turn)",e2e_rtt:""},dateUtils:{earlier:"Earlier",today:"Today",yesterday:"Yesterday"},deepLinking:{appNotInstalled:"You need the {{app}} mobile app to join this meeting on your phone.",description:"Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.",descriptionWithoutWeb:"",downloadApp:"Download the app",ifDoNotHaveApp:"If you don't have the app yet:",ifHaveApp:"If you already have the app:",joinInApp:"Join this meeting using the app",launchWebButton:"Launch in web",title:"Launching your meeting in {{app}}\u2026",tryAgainButton:"Try again in desktop"},defaultLink:"e.g. {{url}}",deviceError:{cameraError:"Failed to access your camera",cameraPermission:"Error obtaining camera permission",microphoneError:"Failed to access your microphone",microphonePermission:"Error obtaining microphone permission"},deviceSelection:{noPermission:"Permission not granted",previewUnavailable:"Preview unavailable",selectADevice:"Select a device",testAudio:"Play a te
__d(function(a,e,n,r,o,l,s){o.exports={en:"Angla",af:"Afrikansa",az:"Azera",bg:"Bulgara",cs:"\u0108e\u0125a",de:"Germana",el:"Greka",eo:"Esperanto",es:"Hispana",fr:"Franca",hy:"Armena",it:"Itala",ja:"Japana",ko:"Korea",nb:"Norvega (Bukmola)",oc:"Okcitana",pl:"Pola",ptBR:"Portugala (Brazila)",ru:"Rusa",sk:"Slovaka",sl:"Slovena",sv:"Sveda",tr:"Turka",vi:"Vjetnama",zhCN:"\u0108ina (\u0108inuja)"}},770,[]);
__d(function(e,i,a,o,n,t,r){n.exports={addPeople:{add:"Inviti",countryNotSupported:"Ni ankora\u016d ne subtenas \u0109i tiun landon.",countryReminder:"\u0108u vi vokas ekster Usonon? Certi\u011du, ke vi komencas kun la landokodo!",disabled:"Vi ne povas inviti homojn.",failedToAdd:"Malsukcesis aldono de membroj",footerText:"Alvokoj estas mal\u015daltitaj.",loading:"Ser\u0109ado de homoj kaj telefonnumeroj",loadingNumber:"Validigo de telefonnumero",loadingPeople:"Ser\u0109ado de homoj por inviti",noResults:"Nenio trovita",noValidNumbers:"Bonvolu entajpi telefonnumeron",searchNumbers:"Aldoni telefonnumerojn",searchPeople:"Ser\u0109i homojn",searchPeopleAndNumbers:"Ser\u0109i homojn a\u016d aldoni iliajn telefonnumerojn",telephone:"Telefono: {{number}}",title:"Inviti homojn al \u0109i tiu kunveno"},audioDevices:{bluetooth:"Bludento",headphones:"Kapa\u016dskultiloj",phone:"Telefono",speaker:"Parolanto",none:"Neniu disponebla sonaparato"},audioOnly:{audioOnly:"Malalta rapideco de retkonekto"},calendarSync:{addMeetingURL:"Aldoni ligilon al la kunveno",confirmAddLink:"\u0108u vi volas aldoni Jitsi-ligilon al \u0109i tiu evento?",error:{appConfiguration:"Kalendara integrigo ne estas \u011duste agordita.",generic:"Okazis eraro. Bonvolu kontroli viajn kalendarajn agordojn a\u016d provu aktualigi la kalendaron.",notSignedIn:"Okazis eraro dum a\u016dtentigado por vidi kalendarajn eventojn. Bonvolu kontroli viajn kalendarajn agordojn kaj provi ensaluti denove."},join:"Ali\u011di",joinTooltip:"Ali\u011di al la kunveno",nextMeeting:"sekva kunveno",noEvents:"Ne estas planitaj eventoj..",ongoingMeeting:"okazanta kunveno",permissionButton:"Malfermi agordojn",permissionMessage:"Kalendara permeso estas bezonata, por ke vi povu vidi viajn kunvenojn en la aplika\u0135o.",refresh:"Aktualigi la kalendaron",today:"Hodia\u016d"},chat:{error:"Eraro: via mesa\u011do \u201c{{originalText}}\u201d ne estis sendita. Kialo: {{error}}",fieldPlaceHolder:"Tajpu vian mesa\u011don \u0109i tien",messagebox:"Tajpu mesa\u011don",messageTo:"Privata mesa\u011do al {{recipient}}",noMessagesMessage:"Ankora\u016d ne estas mesa\u011doj en la kunveno. Komencu konversation \u0109i tie!",nickname:{popover:"Elektu ka\u015dnomon",title:"Elektu ka\u015dnomon por uzi la babilejon"},privateNotice:"Privata mesa\u011do al {{recipient}}",title:"Babilejo",you:"vi"},chromeExtensionBanner:{installExtensionText:"Instali la kromprogramon por integrigo de Google Calendar kaj Office 365",buttonText:"Instali kromprogramon por Chrome",dontShowAgain:"Ne plu montru tion al mi"},connectingOverlay:{joiningRoom:"Konekti\u011do al via kunveno\u2026"},connection:{ATTACHED:"Kunligita",AUTHENTICATING:"A\u016dtentiganta",AUTHFAIL:"A\u016dtentigo malsukcesis",CONNECTED:"Konektita",CONNECTING:"Konektanta",CONNFAIL:"Konekto malsukcesis",DISCONNECTED:"Malkonektita",DISCONNECTING:"Malkonektanta",ERROR:"Eraro",FETCH_SESSION_ID:"Ricevado de session-id\u2026",GET_SESSION_ID_ERROR:"Eraro dum ricevado de session-id: {{code}}",GOT_SESSION_ID:"Ricevado de session-id\u2026 farita",LOW_BANDWIDTH:"Video por {{displayName}} estis mal\u015daltita por \u015dpari retan trafikon"},connectionindicator:{address:"Address:",bandwidth:"Estimated bandwidth:",bitrate:"Bitrate:",bridgeCount:"Server count: ",connectedTo:"Connected to:",e2e_rtt:"E2E RTT:",framerate:"Frame rate:",less:"Show less",localaddress:"Local address:",localaddress_plural:"Local addresses:",localport:"Local port:",localport_plural:"Local ports:",more:"Show more",packetloss:"Packet loss:",quality:{good:"Bona",inactive:"Neaktiva",lost:"Perdita",nonoptimal:"Neideala",poor:"Malbona"},remoteaddress:"Fora adreso:",remoteaddress_plural:"Foraj adresoj:",remoteport:"Fora pordo:",remoteport_plural:"Foraj pordoj:",resolution:"Distingivo:",status:"Konekto:",transport:"Transporto:",transport_plural:"Transportoj:"},dateUtils:{earlier:"Pli frue",today:"Hodia\u016d",yesterday:"Hiera\u016d"},deepLinking:{appNotInstalled:"Vi bezonas la aplika\u0135on {{app}} por ali\u011di al \u0109i tiu kunveno per via telefono.",description:"\u0108u nenio okazis? Ni provis lan\u0109i v
__d(function(a,o,n,s,e,i,r){e.exports={en:"Ingl\xe9s",af:"Afrik\xe1ans",bg:"B\xfalgaro",ca:"Catal\xe1n",cs:"Checo",de:"Alem\xe1n",el:"Griego",enGB:"Ingl\xe9s (Reino Unido)",eo:"Esperanto",es:"Espa\xf1ol",esUS:"Espa\xf1ol (Am\xe9rica Latina)",fi:"Finland\xe9s",fr:"Franc\xe9s",frCA:"Franc\xe9s (Canadiense)",he:"Hebreo",hr:"Croata",hu:"H\xfangaro",hy:"Armenio",it:"Italiano",ja:"Japon\xe9s",ko:"Coreano",nl:"Holand\xe9s",oc:"Occitano",pl:"Polaco",ptBR:"Portugu\xe9s (Brasil)",ru:"Ruso",sk:"Eslovaco",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chino (China)",zhTW:"Chino (Taiw\xe1n)",et:"Estonio",da:"Dan\xe9s"}},772,[]);
__d(function(e,a,o,r,i,n,t){i.exports={addPeople:{add:"Invitar",addContacts:"Invitar a sus contactos",copyInvite:"Copiar la invitaci\xf3n a la reuni\xf3n",copyLink:"Copiar el link de la reuni\xf3n",copyStream:"Copiar el link de la transmisi\xf3n en vivo",countryNotSupported:"Aun no contamos con soporte a este destino.",countryReminder:"\xbfLlamando fuera de los Estados Unidos? \xa1Por favor, aseg\xfarese de empezar con el c\xf3digo de pa\xeds!",defaultEmail:"Direcci\xf3n de correo por defecto",disabled:"No puede invitar a otras personas.",failedToAdd:"Error al agregar participantes",footerText:"La marcaci\xf3n est\xe1 desactivada.",googleEmail:"Correo electr\xf3nico de Google",inviteMoreHeader:"Usted se encuentra solo en la reuni\xf3n",inviteMoreMailSubject:"Unirse a la reunion {{appName}}",inviteMorePrompt:"Invitar a m\xe1s personas",linkCopied:"Link copiado al portapapeles",loading:"Buscando por contacto y n\xfamero telef\xf3nico",loadingNumber:"Validando el n\xfamero telef\xf3nico",loadingPeople:"Buscando contactos a invitar",noResults:"No se encontraron coincidencias",noValidNumbers:"Por favor ingrese un n\xfamero de tel\xe9fono",outlookEmail:"Correo de Outlook",searchNumbers:"Agregar n\xfameros telef\xf3nicos",searchPeople:"B\xfascar personas",searchPeopleAndNumbers:"Buscar personas o a\xf1adir sus n\xfameros de tel\xe9fono",shareInvite:"Compartir la invitaci\xf3n a la reuni\xf3n",shareLink:"Compartir el link de la reunion",shareStream:"Compartie el link de la transmici\xf3n en vivo",telephone:"Tel\xe9fono: {{number}}",title:"Invitar a otras personas a esta reuni\xf3n",yahooEmail:"Correo de Yahoo"},audioDevices:{bluetooth:"Bluetooth",headphones:"Auriculares",phone:"Tel\xe9fono",speaker:"Altavoz",none:"No hay dispositivos de audio disponibles"},audioOnly:{audioOnly:"Bajo consumo de Ancho de Banda"},calendarSync:{addMeetingURL:"Agregar un v\xednculo a la reuni\xf3n",confirmAddLink:"\xbfQuiere a\xf1adir un enlace de Jitsi a este evento?",error:{appConfiguration:"La integraci\xf3n del calendario no est\xe1 configurada correctamente",generic:"Se ha producido un error. Compruebe la configuraci\xf3n del calendario o pruebe cargarlo nuevamente.",notSignedIn:"Se ha producido un error de autenticaci\xf3n para ver los eventos del calendario. Compruebe la configuraci\xf3n del calendario e intente iniciar sesi\xf3n de nuevo"},join:"Unirse",joinTooltip:"Unirse a la reuni\xf3n",nextMeeting:"pr\xf3xima reuni\xf3n",noEvents:"No hay eventos pr\xf3ximos programados.",ongoingMeeting:"reuni\xf3n en curso",permissionButton:"Abrir ajustes",permissionMessage:"Los permisos al calendario son necesarios para ver sus reuniones en la aplicaci\xf3n.",refresh:"Actualizar calendario",today:"Hoy"},chat:{error:"Error: su mensaje no se env\xedo. Motivo: {{error}}",fieldPlaceHolder:"Escriba su mensaje aqu\xed",messagebox:"Escriba un mensaje",messageTo:"Mensaje privado para {{recipient}}",noMessagesMessage:"No hay mensajes en la reuni\xf3n. \xa1Inicie una conversaci\xf3n!",nickname:{popover:"Seleccione un apodo",title:"Introduzca un apodo para usar el chat"},privateNotice:"Mensaje privado para {{recipient}}",title:"Chat",you:"usted"},chromeExtensionBanner:{installExtensionText:"Instalar la extensi\xf3n para Google Calendar y la integraci\xf3n con Office 365",buttonText:"Instalar extensi\xf3n de Chrome",dontShowAgain:"No mostrar nuevamente"},connectingOverlay:{joiningRoom:"Conect\xe1ndose a su reuni\xf3n\u2026"},connection:{ATTACHED:"Adjunto",AUTHENTICATING:"Autenticando",AUTHFAIL:"Fallo\u0301 la autenticacio\u0301n",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Conexi\xf3n fallida",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Error",RECONNECTING:"Ocurri\xf3 un problema en la red. Reconectando...",FETCH_SESSION_ID:"Obteniendo session-ID\u2026",GET_SESSION_ID_ERROR:"Obtener session-id error: {{code}}",GOT_SESSION_ID:"Obteniendo session-ID\u2026 Listo",LOW_BANDWIDTH:"Video para {{displayName}} ha sido deshabilitado para economizar ancho de banda"},connectionindicator:{address:"Direcci\xf3n:",bandwidth:"Ancho de banda estimad
__d(function(a,o,n,e,r,s,i){r.exports={en:"Ingl\xe9s",af:"Africano",bg:"B\xfalgaro",ca:"Catal\xe1n",cs:"Checo",de:"Alem\xe1n",el:"Griego",enGB:"Ingl\xe9s",eo:"Esperanto",es:"Espa\xf1ol",esUS:"Espa\xf1ol (Latinoam\xe9rica)",fi:"Finland\xe9s",fr:"Franc\xe9s",frCA:"Franc\xe9s (Canadiense)",he:"Hebreo",hr:"Croata",hu:"H\xfangaro",hy:"Armenio",it:"Italiano",ja:"Japon\xe9s",ko:"Coreano",nl:"Holand\xe9s",oc:"Occitano",pl:"Polaco",ptBR:"Portugu\xe9s (Brasil)",ru:"Ruso",sk:"Eslovaco",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chino (China)",zhTW:"Chino (Taiwan)"}},774,[]);
__d(function(e,a,o,n,i,r,t){i.exports={addPeople:{add:"Invitar",addContacts:"Invitar a sus contactos",copyInvite:"Copiar la invitaci\xf3n a la reuni\xf3n",copyLink:"Copiar el link de la reuni\xf3n",copyStream:"Copiar el link de la transmisi\xf3n en vivo",countryNotSupported:"Aun no contamos con soporte a este destino.",countryReminder:"\xbfLlamando fuera de los Estados Unidos? \xa1Por favor, aseg\xfarese de empezar con el c\xf3digo de pa\xeds!",defaultEmail:"Direcci\xf3n de correo por defecto",disabled:"No puede invitar a otras personas.",failedToAdd:"Error al agregar participantes",footerText:"La marcaci\xf3n est\xe1 desactivada.",googleEmail:"Correo electr\xf3nico de Google",inviteMoreHeader:"Usted se encuentra solo en la reuni\xf3n",inviteMoreMailSubject:"Unirse a la reunion {{appName}}",inviteMorePrompt:"Invitar a m\xe1s personas",linkCopied:"Link copiado al portapapeles",loading:"Buscando por contacto y n\xfamero telef\xf3nico",loadingNumber:"Validando el n\xfamero telef\xf3nico",loadingPeople:"Buscando contactos a invitar",noResults:"No se encontraron coincidencias",noValidNumbers:"Por favor ingrese un n\xfamero de tel\xe9fono",outlookEmail:"Correo de Outlook",searchNumbers:"Agregar n\xfameros telef\xf3nicos",searchPeople:"Buscar personas",searchPeopleAndNumbers:"Buscar personas o a\xf1adir sus n\xfameros de tel\xe9fono",shareInvite:"Compartir la invitaci\xf3n a la reuni\xf3n",shareLink:"Compartir el link de la reunion",shareStream:"Compartie el link de la transmici\xf3n en vivo",telephone:"Tel\xe9fono: {{number}}",title:"Invitar a otras personas a esta reuni\xf3n",yahooEmail:"Correo de Yahoo"},audioDevices:{bluetooth:"Bluetooth",headphones:"Aud\xedfonos",phone:"Tel\xe9fono",speaker:"Altavoz",none:"No hay dispositivos de audio disponibles"},audioOnly:{audioOnly:"Ancho de banda bajo"},calendarSync:{addMeetingURL:"Agregar un v\xednculo a la reuni\xf3n",confirmAddLink:"\xbfQuiere a\xf1adir un enlace de Jitsi a este evento?",error:{appConfiguration:"La integraci\xf3n del calendario no est\xe1 configurada correctamente",generic:"Se ha producido un error. Compruebe la configuraci\xf3n del calendario o pruebe cargarlo nuevamente.",notSignedIn:"Se ha producido un error de autenticaci\xf3n para ver los eventos del calendario. Compruebe la configuraci\xf3n del calendario e intente iniciar sesi\xf3n de nuevo"},join:"Unir",joinTooltip:"Unirse a la reuni\xf3n",nextMeeting:"pr\xf3xima reuni\xf3n",noEvents:"No hay eventos pr\xf3ximos programados.",ongoingMeeting:"reuni\xf3n en proceso",permissionButton:"Abrir configuraci\xf3n",permissionMessage:"Los permisos al calendario son necesarios para ver sus reuniones en la aplicaci\xf3n.",refresh:"Actualizar calendario",today:"Hoy"},chat:{error:"Error: su mensaje no se env\xedo. Motivo: {{error}}",fieldPlaceHolder:"Escriba su mensaje aqu\xed",messagebox:"Escriba un mensaje",messageTo:"Mensaje privado para {{recipient}}",noMessagesMessage:"No hay mensajes en la reuni\xf3n. \xa1Inicie una conversaci\xf3n!",nickname:{popover:"Seleccione un apodo",title:"Introducir un apodo para usar el chat"},privateNotice:"Mensaje privado para {{recipient}}",title:"Mensajes",you:"usted"},chromeExtensionBanner:{installExtensionText:"Instalar la extensi\xf3n para Google Calendar y la integraci\xf3n con Office 365",buttonText:"Instalar extensi\xf3n de Chrome",dontShowAgain:"No mostrar nuevamente"},connectingOverlay:{joiningRoom:"Conectando a su reuni\xf3n\u2026"},connection:{ATTACHED:"Adjunto",AUTHENTICATING:"Autenticando",AUTHFAIL:"Error de autenticaci\xf3n",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Error de conexi\xf3n",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Error",RECONNECTING:"Ocurri\xf3 un problema en la red. Reconectando...",FETCH_SESSION_ID:"Obteniendo session-ID\u2026",GET_SESSION_ID_ERROR:"Obtener session-id error: {{code}}",GOT_SESSION_ID:"Obteniendo session-ID\u2026 Listo",LOW_BANDWIDTH:"Video para {{displayName}} ha sido deshabilitado para economizar ancho de banda"},connectionindicator:{address:"Direcci\xf3n:",bandwidth:"Ancho de banda estimado:",bitrate:"
__d(function(e,a,i,l,k,n,r){k.exports={en:"Inglise keel",af:"Afrikaani keel",bg:"Bulgaaria keel",ca:"Katalaani keel",cs:"T\u0161ehhi keel",de:"Saksa keel",el:"Kreeka keel",enGB:"Inglise keel (\xdchendkuningriik)",eo:"Esperanto keel",es:"Hispaania keel",esUS:"Hispaania keel (Ladina-Ameerika)",et:"Eesti keel",fi:"Soome keel",fr:"Prantsuse keel",frCA:"Prantsuse keel (Kanada)",hr:"Horvaadi keel",hu:"Ungari keel",hy:"Armeenia keel",it:"Itaalia keel",ja:"Jaapani keel",ko:"Korea keel",nl:"Hollandi keel",oc:"Oksitaani keel",pl:"Poola keel",ptBR:"Portigali keel (Brasiilia)",ru:"Vene keel",sv:"Roosi keel",tr:"T\xfcrgi keel",vi:"Vietnami keel",zhCN:"Hiina keel (Hiina)",zhTW:"Hiina keel (Tai)"}},776,[]);
__d(function(e,a,i,t,s,n,o){s.exports={addPeople:{add:"Lisa",countryNotSupported:"Valitud riik ei ole toetatud.",countryReminder:"Veendu, et suunakood oleks lisatud.",disabled:"Uusi kontakte ei saa k\xf5nesse lisada.",failedToAdd:"Uue kontakti k\xf5nesse lisamine eba\xf5nnestus",footerText:"Numbri valimine on keelatud.",loading:"Kontaktide otsimine\u2026",loadingNumber:"Telefoninumbri kontrollimine\u2026",loadingPeople:"Kontaktide otsimine k\xf5nesse lisamiseks\u2026",noResults:"Vasteid ei leitud",noValidNumbers:"Sisesta telefoninumber",searchNumbers:"Lisa telefoninumber",searchPeople:"Kontaktide otsimine",searchPeopleAndNumbers:"Otsi kontakti v\xf5i lisa telefoninumber",telephone:"Telefoninumber: {{number}}",title:"Lisa kontakte k\xf5nesse"},audioDevices:{bluetooth:"Bluetooth",headphones:"K\xf5rvaklapid",phone:"Telefon",speaker:"K\xf5lar",none:"Heli vahendid pole k\xe4ttesaadavad"},audioOnly:{audioOnly:"Ainult heli"},calendarSync:{addMeetingURL:"Lisa k\xf5ne link",confirmAddLink:"Kas soovid k\xe4esolevale k\xf5nele lisada lingi?",error:{appConfiguration:"\xdchendus kalendriga ei ole \xf5igesti seadistatud.",generic:"Viga! Palun kontrolli kalendri seadistusi v\xf5i v\xe4rskenda kalendrit.",notSignedIn:"Viga kalendri autentimisel! Palun kontrolli kalendri seadistusi ja logi uuesti sisse."},join:"Liitu",joinTooltip:"Liitu k\xf5nega",nextMeeting:"j\xe4rgmine k\xf5ne",noEvents:"Uusi k\xf5nesid pole planeeritud..",ongoingMeeting:"aktiivne k\xf5ne",permissionButton:"Ava seadistused",permissionMessage:"Planeeritud k\xf5ne n\xe4gemiseks on vajalik kalendri ligip\xe4\xe4su\xf5igus.",refresh:"V\xe4rskenda kalendrit",today:"T\xe4na"},chat:{error:"Viga: s\xf5numi \"{{originalText}}\" saatmine eba\xf5nnestus. P\xf5hjus: {{error}}",fieldPlaceHolder:"Sisesta oma s\xf5num siia",messagebox:"Sisesta s\xf5num",messageTo:"Privaats\xf5num kasutajale {{recipient}}",noMessagesMessage:"Kirjavahetust pole veel alustatud. Alusta kirjavahetust siin!",nickname:{popover:"Sisesta nimi",title:"Sisesta nimi, et k\xf5nega alustada"},privateNotice:"Privaats\xf5num kasutajale {{recipient}}",title:"K\xf5ne",you:"you"},chromeExtensionBanner:{installExtensionText:"Paigalda Google Kalendri laiendus ja Office 365 integratsioon",buttonText:"Paigalda Chrome'i laiendus",dontShowAgain:"\xc4ra rohkem n\xe4ita"},connectingOverlay:{joiningRoom:"K\xf5nega \xfchendamine\u2026"},connection:{ATTACHED:"\xdchendatud",AUTHENTICATING:"Autentimine\u2026",AUTHFAIL:"Autentimine eba\xf5nnestus",CONNECTED:"\xdchendatud",CONNECTING:"\xdchendamine\u2026",CONNFAIL:"\xdchendamine eba\xf5nnestus",DISCONNECTED:"\xdchendus katkestatud",DISCONNECTING:"\xdchenduse katkestamine\u2026",ERROR:"Viga",FETCH_SESSION_ID:"Sessiooni-ID p\xfc\xfcdmine\u2026",GET_SESSION_ID_ERROR:"Sessiooni-ID p\xfc\xfcdmisel tekkis viga: {{code}}",GOT_SESSION_ID:"Sessiooni-ID p\xfc\xfcdmine\u2026 Tehtud",LOW_BANDWIDTH:"Kasutaja {{displayName}} video on \xfclekandekiiruse parandamiseks v\xe4lja l\xfclitatud"},connectionindicator:{address:"Aadress:",bandwidth:"Eeldatav \xfclekandekiirus:",bitrate:"Andmeedastuskiirus:",bridgeCount:"Serverite arv: ",connectedTo:"\xdchendatud:",e2e_rtt:"E2E RTT:",framerate:"Ekraani eraldusv\xf5ime:",less:"N\xe4ita v\xe4hem",localaddress:"Lokaalne aadress:",localaddress_plural:"Lokaalsed aadressid:",localport:"Lokaalne port:",localport_plural:"Lokaalsed pordid:",more:"N\xe4ita rohkem",packetloss:"Andmepaketi kaotus:",quality:{good:"Hea",inactive:"Mitteaktiivne",lost:"Kaotatud",nonoptimal:"Mitteoptimaalne",poor:"N\xf5rk"},remoteaddress:"Kaugt\xf6\xf6 aadress:",remoteaddress_plural:"Kaugt\xf6\xf6 aadressid:",remoteport:"Kaugt\xf6\xf6 port:",remoteport_plural:"Kaugt\xf6\xf6 pordid:",resolution:"Resolutsioon:",status:"\xdchendus:",transport:"Transport:",transport_plural:"Transpordid:"},dateUtils:{earlier:"Varem",today:"T\xe4na",yesterday:"Eile"},deepLinking:{appNotInstalled:"K\xf5nega liitumiseks l\xe4bi mobiiltelefoni on vaja paigaldada {{app}} rakendus.",description:"Midagi ei juhtunud? Proovisime \xfchendust luua t\xf6\xf6laua rakendusega. Proovi uuesti v\xf5i k\xe4ivita {{app}} rakendus
__d(function(a,i,n,k,t,e,r){t.exports={en:"englanti",af:"afrikaans",az:"",bg:"bulgaria",cs:"t\u0161ekki",de:"saksa",el:"kreikka",eo:"esperanto",es:"espanja",fr:"ranska",hy:"armenia",it:"italia",ja:"japani",ko:"korea",nb:"",oc:"oksitaani",pl:"puola",ptBR:"portugali (Brasilia)",ru:"ven\xe4j\xe4",sk:"",sl:"",sv:"ruotsi",tr:"turkki",vi:"vietnam",zhCN:"kiina (Kiina)",zhTW:"kiina (Taiwan)",nl:"hollanti",hu:"unkari",hr:"kroaatti",frCA:"ranska (Kanada)",fi:"suomi",et:"viro",esUS:"espanja (Latinalainen Amerikka)",enGB:"englanti (Yhdistynyt kuningaskunta)",da:"tanska",ca:"katalaani"}},778,[]);
__d(function(t,e,i,a,o,n,s){o.exports={addPeople:{add:"Kutsu",countryNotSupported:"T\xe4t\xe4 maata ei viel\xe4 tueta.",countryReminder:"Soitatko ulkomaille? Muista lis\xe4t\xe4 alkuun maakoodi!",disabled:"Et voi l\xe4hett\xe4\xe4 kutsuja.",failedToAdd:"",footerText:"Soittaminen on estetty.",loading:"Etsit\xe4\xe4n henkil\xf6it\xe4 ja puhelinnumeroita",loadingNumber:"Tarkistetaan puhelinnumeroa",loadingPeople:"Etsit\xe4\xe4n kutsuttavia henkil\xf6it\xe4",noResults:"Ei hakua vastaavia tuloksia",noValidNumbers:"Anna puhelinnumero",searchNumbers:"Lis\xe4\xe4 puhelinnumeroita",searchPeople:"Etsi henkil\xf6it\xe4",searchPeopleAndNumbers:"Etsi henkil\xf6it\xe4 tai lis\xe4\xe4 heid\xe4n puhelinnumeronsa",telephone:"Puhelin: {{number}}",title:"Kutsu henkil\xf6it\xe4 t\xe4h\xe4n kokoukseen"},audioDevices:{bluetooth:"Bluetooth",headphones:"Kuulokkeet",phone:"Puhelin",speaker:"Puhuja"},audioOnly:{audioOnly:"Vain \xe4\xe4ni"},calendarSync:{addMeetingURL:"Lis\xe4\xe4 kokouslinkki",confirmAddLink:"Haluatko lis\xe4t\xe4 tapahtumaan Jitsi-linkin?",error:{appConfiguration:"Kalenterin integrointia ei ole m\xe4\xe4ritetty asianmukaisesti.",generic:"Tapahtui virhe. Tarkista kalenterin m\xe4\xe4ritykset tai p\xe4ivit\xe4 kalenterin\xe4kym\xe4.",notSignedIn:"Kalenterin tapahtumien tarkasteluun tarvittavassa todennuksessa tapahtui virhe. Tarkista kalenterin asetukset ja kirjaudu sis\xe4\xe4n uudelleen."},join:"Liity",joinTooltip:"Liity kokoukseen",nextMeeting:"seuraava kokous",noEvents:"Aikataulussa ei ole tulevia tapahtumia.",ongoingMeeting:"meneill\xe4\xe4n oleva kokous",permissionButton:"Avaa asetukset",permissionMessage:"Kalenterin k\xe4ytt\xf6oikeus vaaditaan, jotta kokouksesi n\xe4kyv\xe4t sovelluksessa.",refresh:"P\xe4ivit\xe4 kalenteri",today:"T\xe4n\xe4\xe4n"},chat:{error:"Virhe: viesti\xe4 \"{{originalText}}\" ei l\xe4hetetty. Syy: {{error}}",messagebox:"Kirjoita viesti",nickname:{popover:"Valitse lempinimi",title:"Anna chatiss\xe4 k\xe4ytett\xe4v\xe4 lempinimi"},title:"Chatti"},connectingOverlay:{joiningRoom:"Yhdistet\xe4\xe4n kokoukseen\u2026"},connection:{ATTACHED:"Liitteen\xe4",AUTHENTICATING:"Todennetaan",AUTHFAIL:"Todennus ep\xe4onnistui",CONNECTED:"Yhdistetty",CONNECTING:"Yhdistet\xe4\xe4n",CONNFAIL:"Yhdist\xe4minen ep\xe4onnistui",DISCONNECTED:"Ei yhteytt\xe4",DISCONNECTING:"Yhteytt\xe4 katkaistaan",ERROR:"Virhe",RECONNECTING:"Tapahtui verkkovirhe. Yhdistet\xe4\xe4n uudelleen..."},connectionindicator:{address:"Osoite:",bandwidth:"Arvioitu kaistanleveys:",bitrate:"Bittinopeus:",bridgeCount:"Palvelimien m\xe4\xe4r\xe4: ",connectedTo:"Yhdistetty kohteeseen:",framerate:"Kuvataajuus:",less:"N\xe4yt\xe4 v\xe4hemm\xe4n",localaddress:"Paikallinen osoite:",localaddress_plural:"Paikalliset osoitteet:",localport:"Paikallinen portti:",localport_plural:"Paikalliset portit:",more:"N\xe4yt\xe4 lis\xe4\xe4",packetloss:"Pakettien menetys:",quality:{good:"Hyv\xe4",inactive:"Ep\xe4aktiivinen",lost:"Katkennut",nonoptimal:"Ei optimaalinen",poor:"Huono"},remoteaddress:"Et\xe4osoite:",remoteaddress_plural:"Et\xe4osoitteet:",remoteport:"Et\xe4portti:",remoteport_plural:"Et\xe4portit:",resolution:"Resoluutio:",status:"Yhteys:",transport:"Kuljetus:",transport_plural:"Kuljetukset:",turn:" (vuoro)"},dateUtils:{earlier:"Aikaisemmin",today:"T\xe4n\xe4\xe4n",yesterday:"Eilen"},deepLinking:{appNotInstalled:"Tarvitset mobiilisovelluksen {{app}}, jotta voit liitty\xe4 t\xe4h\xe4n kokoukseen puhelimellasi.",description:"Eik\xf6 mit\xe4\xe4n tapahtunut? Yritimme k\xe4ynnist\xe4\xe4 kokouksen ty\xf6p\xf6yt\xe4sovelluksessa {{app}}. Yrit\xe4 uudelleen tai k\xe4ynnist\xe4 se verkkosovelluksessa {{app}}.",descriptionWithoutWeb:"",downloadApp:"Lataa sovellus",launchWebButton:"K\xe4ynnist\xe4 verkossa",openApp:"Jatka sovellukseen",title:"K\xe4ynnistet\xe4\xe4n kokousta sovelluksessa {{app}}\u2026",tryAgainButton:"Yrit\xe4 uudelleen ty\xf6p\xf6yt\xe4sovelluksella"},defaultLink:"esim. {{url}}",deviceError:{cameraError:"Kameran k\xe4ytt\xf6 ei onnistunut",cameraPermission:"Virhe kameran k\xe4ytt\xf6oikeuksien hankkimisessa",microphoneError:"Mikrofonin k\xe4ytt\xf6 ei o
__d(function(a,n,i,s,e,o,r){e.exports={en:"Anglais",af:"Afrikaans",bg:"Bulgare",ca:"Catalan",cs:"Tch\xe8que",de:"Allemand",el:"Grec",enGB:"Anglais (Royaume-Uni)",eo:"Esp\xe9ranto",es:"Espagnol",esUS:"Espagnol (Am\xe9rique latine)",fi:"Finnois",fr:"Fran\xe7ais",frCA:"Fran\xe7ais (Canada)",hr:"Croate",hu:"Hongrois",hy:"Arm\xe9nien",it:"Italien",ja:"Japonais",ko:"Cor\xe9en",nl:"N\xe9erlandais",oc:"Occitan",pl:"Polonais",ptBR:"Portugais (Br\xe9sil)",ru:"Russe",sk:"Slovaque",sv:"Su\xe9dois",tr:"Turc",vi:"Vietnamien",zhCN:"Chinois (Chine)",zhTW:"Chinois (Taiwan)",et:"Estonien",da:"Danois"}},780,[]);
__d(function(e,r,n,o,i,t,a){i.exports={addPeople:{add:"Inviter",addContacts:"Inviter vos contacts",copyInvite:"Copier l'invitation \xe0 la r\xe9union",copyLink:"Copier le lien de la r\xe9union",copyStream:"Copier le lien de diffision en direct",countryNotSupported:"Cette destination n'est pas actuellement support\xe9e.",countryReminder:"Appel hors des \xc9tats-Unis ? Veuillez d\xe9buter par le code du pays !",defaultEmail:"Votre email par d\xe9faut",disabled:"Vous ne pouvez pas inviter quelqu'un.",failedToAdd:"Erreur lors de l'ajout des participants",footerText:"Appels sortants d\xe9sactiv\xe9s.",googleEmail:"Gmail",inviteMoreHeader:"Vous \xeates seul(e) dans la r\xe9union",inviteMoreMailSubject:"Rejoindre une r\xe9union {{appName}}",inviteMorePrompt:"Inviter d'autres personnes",linkCopied:"Lien copi\xe9 dans le presse-papiers",loading:"Rechercher des personnes et des num\xe9ros de t\xe9l\xe9phone",loadingNumber:"Validation du num\xe9ro de t\xe9l\xe9phone",loadingPeople:"Recherche de personnes \xe0 inviter",noResults:"Aucun r\xe9sultat de recherche correspondant",noValidNumbers:"Veuillez entrer un num\xe9ro de t\xe9l\xe9phone",outlookEmail:"Outlook",searchNumbers:"Ajouter des num\xe9ros de t\xe9l\xe9phone",searchPeople:"Rechercher une personne",searchPeopleAndNumbers:"Rechercher des personnes ou ajouter leurs num\xe9ros de t\xe9l\xe9phone",shareInvite:"Partager l'invitation \xe0 la r\xe9union",shareLink:"Partager le lien de la r\xe9union pour inviter d'autres personnes",shareStream:"Partager le lien de diffusion en direct",telephone:"T\xe9l\xe9phone : {{number}}",title:"Inviter une personne \xe0 cette r\xe9union",yahooEmail:"Yahoo"},audioDevices:{bluetooth:"Bluetooth",headphones:"\xc9couteurs",phone:"T\xe9l\xe9phone",speaker:"Haut-parleur",none:"Aucune source audio n'est disponible"},audioOnly:{audioOnly:"Bande passante faible"},calendarSync:{addMeetingURL:"Ajouter un lien de conf\xe9rence",confirmAddLink:"Voulez-vous ajouter un lien Jitsi \xe0 cet \xe9v\xe9nement ?",error:{appConfiguration:"L'int\xe9gration du calendrier n'est pas correctement configur\xe9e.",generic:"Une erreur s'est produite. Veuillez v\xe9rifier les param\xe8tres de votre calendrier ou tenter de l'actualiser.",notSignedIn:"Une erreur d'authentification s'est produite lors de la tentative d'afficher les \xe9v\xe9nements du calendrier. Veuillez v\xe9rifier les param\xe8tres de votre calendrier et essayer de nouveau."},join:"Joindre",joinTooltip:"Rejoindre la r\xe9union",nextMeeting:"prochaine r\xe9union",noEvents:"Il n'y a pas d\u2019\xe9v\xe9nement \xe0 venir.",ongoingMeeting:"La r\xe9union en cours",permissionButton:"Afficher les r\xe9glages",permissionMessage:"La permission du calendrier est requise pour afficher vos r\xe9unions dans l'application.",refresh:"Rafra\xeechir le calendrier",today:"Aujourd'hui"},chat:{error:"Erreur : votre message n'a pas \xe9t\xe9 envoy\xe9. Raison : {{error}}",fieldPlaceHolder:"Tapez votre message ici",messagebox:"Saisissez un message",messageTo:"Message priv\xe9 \xe0 {{recipient}}",noMessagesMessage:"Il n'y a pas encore de messages dans cette r\xe9union. D\xe9marrez une conversation ici !",nickname:{popover:"Choisissez un pseudonyme",title:"Entrez un pseudonyme pour utiliser le chat"},privateNotice:"Message priv\xe9 \xe0 {{recipient}}",title:"Chat",you:"vous"},chromeExtensionBanner:{installExtensionText:"Installer l'extension pour l'int\xe9gration de Google Calendar et Office 365",buttonText:"Installer l'extension Chrome",dontShowAgain:"Ne plus me montrer ceci"},connectingOverlay:{joiningRoom:"Connexion \xe0 la r\xe9union\u2026"},connection:{ATTACHED:"Attach\xe9e",AUTHENTICATING:"Authentification en cours",AUTHFAIL:"\xc9chec de l'authentification",CONNECTED:"Connect\xe9",CONNECTING:"Connexion en cours",CONNFAIL:"\xc9chec de la connexion",DISCONNECTED:"D\xe9connect\xe9",DISCONNECTING:"D\xe9connexion en cours",ERROR:"Erreur",RECONNECTING:"Un probl\xe8me r\xe9seau est survenue. Reconnexion en cours...",FETCH_SESSION_ID:"Obtention d\u2019un identifiant de session\u2026",GET_SESSION_ID_ERROR:"Obtenir une erreur d\u2019ide
__d(function(n,a,i,e,s,o,r){s.exports={en:"Anglais",af:"Africain",bg:"Bulgare",ca:"Catalan",cs:"Tch\xe8que",de:"Allemand",el:"Grec",enGB:"Anglais (Royaume-Uni)",eo:"Esp\xe9ranto",es:"Espagnol",esUS:"Espagnol (Am\xe9rique latine)",fi:"Finnois",fr:"Fran\xe7ais",frCA:"Fran\xe7ais (Canadien)",hr:"Croate",hu:"Hongrois",hy:"Arm\xe9nien",it:"Italien",ja:"Japonais",ko:"Cor\xe9en",nl:"N\xe9erlandais",oc:"Occitan",pl:"Polonais",ptBR:"Portugais (Br\xe9sil)",ru:"Russe",sk:"Slovaque",sv:"Su\xe9dois",tr:"Turc",vi:"Vietnamien",zhCN:"Chinois (Chine)",zhTW:"Chinois (Taiwan)",et:"Estonien",da:"Danois"}},782,[]);
__d(function(e,r,n,i,t,o,a){t.exports={addPeople:{add:"Inviter",countryNotSupported:"Nous ne prenons pas encore cette destination en charge.",countryReminder:"Vous appelez en dehors des \xc9.-U.? Veuillez vous assurer de commencer par le code de pays!",disabled:"Vous ne pouvez pas inviter d'autres personnes.",failedToAdd:"L'ajout de membres a \xe9chou\xe9",footerText:"Les appels sont d\xe9sactiv\xe9s.",loading:"Rechercher des personnes et des num\xe9ros de t\xe9l\xe9phone",loadingNumber:"Validation du num\xe9ro de t\xe9l\xe9phone",loadingPeople:"Rechercher des personnes \xe0 inviter",noResults:"Aucun r\xe9sultat de recherche correspondant",noValidNumbers:"Veuillez entrer un num\xe9ro de t\xe9l\xe9phone",searchNumbers:"Ajouter des num\xe9ros de t\xe9l\xe9phone",searchPeople:"Rechercher des personnes",searchPeopleAndNumbers:"Rechercher des personnes ou ajouter des num\xe9ros de t\xe9l\xe9phone",telephone:"T\xe9l\xe9phone : {{number}}",title:"Inviter des personnes \xe0 cette r\xe9union"},audioDevices:{bluetooth:"Bluetooth",headphones:"\xc9couteurs",phone:"T\xe9l\xe9phone",speaker:"Intervenant",none:"Aucun p\xe9riph\xe9rique audio n'est disponible"},audioOnly:{audioOnly:"Bande passante faible"},calendarSync:{addMeetingURL:"Ajouter un lien de r\xe9union",confirmAddLink:"Voulez-vous ajouter un lien Jitsi Meet \xe0 cet \xe9v\xe9nement ?",error:{appConfiguration:"L'int\xe9gration de l'agenda n'est pas correctement configur\xe9e.",generic:"Une erreur s'est produite. Veuillez v\xe9rifier vos param\xe8tres d'agenda ou essayer de rafra\xeechir l'agenda.",notSignedIn:"Une erreur s'est produite lors de l'authentification des \xe9v\xe9nements d'agenda. Veuillez v\xe9rifier vos param\xe8tres d'agenda ou essayer de vous reconnecter."},join:"Rejoindre",joinTooltip:"Rejoindre la r\xe9union",nextMeeting:"prochaine r\xe9union",noEvents:"Il n'y a aucun \xe9v\xe9nement planifi\xe9 \xe0 venir.",ongoingMeeting:"r\xe9union en cours",permissionButton:"Ouvrir les param\xe8tres",permissionMessage:"L'autorisation de l'Agenda est n\xe9cessaire pour consulter vos r\xe9unions dans l'application.",refresh:"Rafra\xeechir l'agenda",today:"Aujourd'hui"},chat:{error:"Erreur : votre message n'a pas \xe9t\xe9 envoy\xe9. Raison : {{error}}",fieldPlaceHolder:"Tapez votre message ici",messagebox:"Tapez un message",messageTo:"",noMessagesMessage:"Il n'y a pas encore de messages dans cette r\xe9union. D\xe9marrez une conversation ici !",nickname:{popover:"Choisissez un nom d'affichage",title:"Entrer un nom d'affichage pour utiliser le clavardage"},privateNotice:"Message priv\xe9 \xe0 {{recipient}}",title:"Clavardage",you:"vous"},connectingOverlay:{joiningRoom:"Connexion \xe0 la r\xe9union en cours\u2026"},connection:{ATTACHED:"Joint",AUTHENTICATING:"Authentification",AUTHFAIL:"\xc9chec de l'authentification",CONNECTED:"Connect\xe9",CONNECTING:"Connexion en cours",CONNFAIL:"\xc9chec de la connexion",DISCONNECTED:"D\xe9connect\xe9",DISCONNECTING:"D\xe9connexion en cours",ERROR:"Erreur",RECONNECTING:"Un probl\xe8me de r\xe9seau est survenu. Reconnexion en cours..."},connectionindicator:{address:"Adresse:",bandwidth:"Bande passante estim\xe9e :",bitrate:"D\xe9bit binaire :",bridgeCount:"Nombre de serveur : ",connectedTo:"Connect\xe9 \xe0 :",framerate:"Fr\xe9quence d'images :",less:"Afficher moins",localaddress:"Adresse locale :",localaddress_plural:"Adresses locales :",localport:"Port local :",localport_plural:"Ports locaux :",more:"Afficher plus",packetloss:"Perte de paquet :",quality:{good:"Bonne",inactive:"Inactive",lost:"Perdue",nonoptimal:"Non-optimale",poor:"Faible"},remoteaddress:"Adresse distante :",remoteaddress_plural:"Adresses distantes :",remoteport:"Port distant :",remoteport_plural:"Ports distants :",resolution:"R\xe9solution :",status:"Connexion :",transport:"Tranport :",transport_plural:"Transports :"},dateUtils:{earlier:"Plus t\xf4t",today:"Aujourd'hui",yesterday:"Hier"},deepLinking:{appNotInstalled:"L'application mobile {{app}} est n\xe9cessaire pour rejoindre cette r\xe9union sur votre t\xe9l\xe9phone.",description:"Il ne s'est rien pass\xe9? Nous a
__d(function(i,k,s,a,e,n,r){e.exports={en:"Engleski",af:"Afrikanski",az:"A\u017eerbejd\u017eanski",bg:"Bugarski",cs:"\u010ce\u0161ki",de:"Njema\u010dki",el:"Gr\u010dki",eo:"Esperanto",es:"\u0160panjolski",fr:"Francuski",hy:"Armenski",it:"Talijanski",ja:"Japanski",ko:"Korejski",nb:"Norve\u0161ki Bokmal",oc:"Okcitanski",pl:"Poljski",ptBR:"Portugalski (Brazil)",ru:"Ruski",sk:"Slova\u010dki",sl:"Slovenski",sv:"\u0160vedski",tr:"Turski",vi:"Vijetnamski",zhCN:"Kineski (Kina)"}},784,[]);
__d(function(e,i,a,o,n,r,t){n.exports={addPeople:{add:"Pozivnica",countryNotSupported:"Ova destinacija jo\u0161 nije podr\u017eana.",countryReminder:"Zovete izvan zemlje? Molim provjerite da li ste unijeli predbroj dr\u017eave!",disabled:"Ne mo\u017eete slati pozivnice.",failedToAdd:"",footerText:"Upu\u0107ivanje poziva je zabranjeno.",loading:"Pretra\u017eujem ljude i brojeve telefona",loadingNumber:"Provjera telefonskog broja",loadingPeople:"Tra\u017eenje osoba koje \u017eelite pozvati",noResults:"Nema podudarnih rezultata pretra\u017eivanja",noValidNumbers:"Unesite telefonski broj",searchNumbers:"Dodajte telefonske brojeve",searchPeople:"Potra\u017eite osobe",searchPeopleAndNumbers:"Potra\u017eite osobe ili dodajte njihove telefonske brojeve",telephone:"Telefon: {{number}}",title:"Pozovite ljude na ovaj sastanak"},audioDevices:{bluetooth:"Bluetooth",headphones:"Slu\u0161alice",phone:"Telefon",speaker:"Zvu\u010dnik"},audioOnly:{audioOnly:"Samo zvuk"},calendarSync:{addMeetingURL:"Dodajte vezu sastanka",confirmAddLink:"\u017delite li dodati Jitsi vezu u ovaj doga\u0111aj?",error:{appConfiguration:"Integracija kalendara nije ispravno konfigurirana.",generic:"Do\u0161lo je do pogre\u0161ke. Provjerite postavke kalendara ili poku\u0161ajte osvje\u017eiti kalendar.",notSignedIn:"Do\u0161lo je do pogre\u0161ke prilikom provjere autenti\u010dnosti za prikaz doga\u0111aja u kalendaru. Provjerite postavke kalendara i poku\u0161ajte se ponovno prijaviti."},join:"Pridru\u017eite",joinTooltip:"Pridru\u017eite se sastanku",nextMeeting:"slijede\u0107i sastanak",noEvents:"Nema zakazanih doga\u0111aja.",ongoingMeeting:"sastanak u tijeku",permissionButton:"Otvori postavke",permissionMessage:"Dozvola za kalendar je obavezna kako biste vidjeli sastanke u aplikaciji.",refresh:"Osvje\u017ei kalendar",today:"Danas"},chat:{error:"Gre\u0161ka: poruka \"{{originalText}}\" nije poslana. Razlog: {{error}}",messagebox:"",nickname:{popover:"Odaberite nadimak",title:"Unesite nadimak za \u010davrljanje"},title:"\u010cavrljanje"},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"Spojen",AUTHENTICATING:"Autentikacija",AUTHFAIL:"Autentikacija nije uspjela",CONNECTED:"Povezan",CONNECTING:"Povezivanje",CONNFAIL:"Povezivanje nije uspjelo",DISCONNECTED:"Nije povezano",DISCONNECTING:"Prekid povezivanja",ERROR:"Gre\u0161ka",RECONNECTING:"Dogodio se problem s mre\u017eom. Ponovno povezivanje..."},connectionindicator:{address:"Adresa:",bandwidth:"Procijenjena propusnost:",bitrate:"Brzina prijenosa:",bridgeCount:"Broj poslu\u017eitelja:",connectedTo:"Spojen na:",framerate:"Sli\u010dice po sekundi:",less:"Prika\u017ei manje",localaddress_0:"Lokalna adresa:",localaddress_1:"Lokalne adrese:",localaddress_2:"",localport_0:"Lokalni priklju\u010dak:",localport_1:"Lokalni priklju\u010dci:",localport_2:"",more:"Prika\u017ei vi\u0161e",packetloss:"Gubitak paketa:",quality:{good:"Dobro",inactive:"Neaktivno",lost:"Izgubljeno",nonoptimal:"Nije optimalno",poor:"Slaba"},remoteaddress_0:"Udaljena adresa:",remoteaddress_1:"Udaljene adrese:",remoteaddress_2:"",remoteport_0:"Udaljeni priklju\u010dak:",remoteport_1:"Udaljeni priklju\u010dci:",remoteport_2:"",resolution:"Rezolucija:",status:"Povezivanje",transport_0:"",transport_1:"",transport_2:"",turn:""},dateUtils:{earlier:"Ranije",today:"Danas",yesterday:"Ju\u010der"},deepLinking:{appNotInstalled:"Da biste se pridru\u017eili ovom sastanku na telefonu, potrebna vam je mobilna aplikacija {{app}}.",description:"Ni\u0161ta se nije dogodilo? Poku\u0161ali smo pokrenuti va\u0161 sastanak u aplikaciji {{app}} na radnoj povr\u0161ini. Poku\u0161ajte ponovno ili ga pokrenite u web-aplikaciji {{app}}.",descriptionWithoutWeb:"",downloadApp:"Preuzmite aplikaciju",launchWebButton:"Pokreni na webu",openApp:"Nastavite do aplikacije",title:"Pokretanje sastanka u {{app}}\u2026",tryAgainButton:"Poku\u0161ajte ponovo na radnoj povr\u0161ini"},defaultLink:"npr. {{url}}",deviceError:{cameraError:"Pristup va\u0161oj kameri nije uspio",cameraPermission:"Gre\u0161ka kod dohvata dozvole za kameru",microphoneError:"Pristup va\u0161em mikrofonu n
__d(function(a,n,r,i,l,e,o){l.exports={en:"Angol",af:"Afrikaans",bg:"Bolg\xe1r",ca:"Katal\xe1n",cs:"Cseh",de:"N\xe9met",el:"G\xf6r\xf6g",enGB:"Angol (Egyes\xfclt Kir\xe1lys\xe1g)",eo:"Eszperant\xf3",es:"Spanyol",esUS:"Spanyol (Latin-Amerika)",fi:"Finn",fr:"Francia",frCA:"Francia (kanadai)",hr:"Horv\xe1t",hu:"Magyar",hy:"\xd6rm\xe9ny",it:"Olasz",ja:"Jap\xe1n",ko:"Koreai",nl:"Holland",oc:"Okszit\xe1n",pl:"Lengyel",ptBR:"Portug\xe1l (Brazil)",ru:"Orosz",sk:"Szlov\xe1kul",sv:"Sv\xe9d",tr:"T\xf6r\xf6k",vi:"Vietn\xe1mi",zhCN:"K\xednai (K\xedna)",zhTW:"K\xednai (Tajvan)",et:"\xc9szt",da:"D\xe1n"}},786,[]);
__d(function(e,t,a,s,l,n,o){l.exports={addPeople:{add:"Megh\xedv\xe1s",countryNotSupported:"Ez a c\xe9l\xe1llom\xe1s jelenleg nem t\xe1mogatott.",countryReminder:"Ez USA-n k\xedv\xfcli h\xedv\xe1s? Orsz\xe1gh\xedv\xf3sz\xe1mmal kell kezd\u0151dnie!",disabled:"Nem h\xedvhat meg senkit.",failedToAdd:"Nem siker\xfclt a r\xe9sztvev\u0151k hozz\xe1ad\xe1sa",footerText:"A k\xfcls\u0151 t\xe1rcs\xe1z\xe1s le van tiltva.",loading:"Szem\xe9lyek \xe9s telefonsz\xe1maik keres\xe9se",loadingNumber:"Telefonsz\xe1m ellen\u0151rz\xe9se",loadingPeople:"Megh\xedvhat\xf3 szem\xe9lyek keres\xe9se",noResults:"Nincs tal\xe1lat a keres\xe9sre",noValidNumbers:"Adjon meg egy telefonsz\xe1mot",searchNumbers:"Telefonsz\xe1mok hozz\xe1ad\xe1sa",searchPeople:"Szem\xe9lyek keres\xe9se",searchPeopleAndNumbers:"Szem\xe9lyek keres\xe9se vagy telefonsz\xe1maik hozz\xe1ad\xe1sa",telephone:"Telefon: {{number}}",title:"Szem\xe9lyek megh\xedv\xe1sa az \xe9rtekezletre"},audioDevices:{bluetooth:"Bluetooth",headphones:"Fejhallgat\xf3",phone:"Telefon",speaker:"Hangsz\xf3r\xf3",none:"Nincsenek el\xe9rhet\u0151 hangeszk\xf6z\xf6k"},audioOnly:{audioOnly:"Alacsony s\xe1vsz\xe9less\xe9g"},calendarSync:{addMeetingURL:"\xc9rtekezlet hivatkoz\xe1s\xe1nak hozz\xe1ad\xe1sa",confirmAddLink:"Hozz\xe1adhat\xf3 egy Jitsi hivatkoz\xe1s az esem\xe9nyhez?",error:{appConfiguration:"A napt\xe1rintegr\xe1ci\xf3 nincs helyesen konfigur\xe1lva.",generic:"Hiba t\xf6rt\xe9nt. Ellen\u0151rizze a napt\xe1r be\xe1ll\xedt\xe1sait vagy pr\xf3b\xe1lja friss\xedteni a napt\xe1rat.",notSignedIn:"Hiba t\xf6rt\xe9nt a napt\xe1r esem\xe9nyeihez val\xf3 hozz\xe1f\xe9r\xe9shez sz\xfcks\xe9ges azonos\xedt\xe1s sor\xe1n. Ellen\u0151rizze a napt\xe1r be\xe1ll\xedt\xe1sait \xe9s pr\xf3b\xe1ljon meg \xfajra bel\xe9pni."},join:"R\xe9szv\xe9tel",joinTooltip:"Bekapcsol\xf3d\xe1s az \xe9rtekezletbe",nextMeeting:"k\xf6vetkez\u0151 \xe9rtekezlet",noEvents:"Nincs k\xf6vetkez\u0151 \xfctemezett \xe9rtekezlet.",ongoingMeeting:"folyamatban l\xe9v\u0151 \xe9rtekezlet",permissionButton:"Be\xe1ll\xedt\xe1sok megnyit\xe1sa",permissionMessage:"A napt\xe1r enged\xe9lyez\xe9se sz\xfcks\xe9ges az \xe9rtekezletek applik\xe1ci\xf3ban val\xf3 megtekint\xe9s\xe9hez.",refresh:"Napt\xe1r friss\xedt\xe9se",today:"Ma"},chat:{error:"Hiba: az \xfczenetet nem siker\xfclt elk\xfcldeni. Hiba oka: {{error}}",fieldPlaceHolder:"\xcdrja ide az \xfczenet\xe9t",messagebox:"\xcdrja be az \xfczenetet",messageTo:"Priv\xe1t \xfczenet a felhaszn\xe1l\xf3nak: {{recipient}}",noMessagesMessage:"A tal\xe1lkoz\xf3n m\xe9g nincsenek \xfczenetek. Itt kezdhet besz\xe9lget\xe9st!",nickname:{popover:"Becen\xe9v kiv\xe1laszt\xe1sa",title:"Adjon meg egy becenevet a cseveg\xe9s sz\xe1m\xe1ra"},privateNotice:"Priv\xe1t \xfczenet a felhaszn\xe1l\xf3nak: {{recipient}}",title:"Cseveg\xe9s",you:"neked"},connectingOverlay:{joiningRoom:"Kapcsol\xf3d\xe1s az \xe9rtekezlethez\u2026"},connection:{ATTACHED:"Kapcsol\xf3dva",AUTHENTICATING:"Azonos\xedt\xe1s",AUTHFAIL:"Hiteles\xedt\xe9s meghi\xfasult",CONNECTED:"Kapcsol\xf3dva",CONNECTING:"Kapcsol\xf3d\xe1s",CONNFAIL:"A kapcsolat meghi\xfasult",DISCONNECTED:"Sz\xe9tkapcsolva",DISCONNECTING:"Sz\xe9tkapcsol\xf3d\xe1s",ERROR:"Hiba",RECONNECTING:"H\xe1l\xf3zati hiba t\xf6rt\xe9nt. \xdajracsatlakoz\xe1s...",LOW_BANDWIDTH:"{{displayName}} vide\xf3ja le lett kapcsolva a s\xe1vsz\xe9less\xe9g cs\xf6kkent\xe9se \xe9rdek\xe9ben",GOT_SESSION_ID:"Munkamenet-azonos\xedt\xf3 beszerz\xe9se\u2026 K\xe9sz",GET_SESSION_ID_ERROR:"Hiba a munkamenet-azonos\xedt\xe1sa beszerz\xe9se k\xf6zben: {{code}}",FETCH_SESSION_ID:"Munkamenet-azonos\xedt\xf3 beszerz\xe9se\u2026"},connectionindicator:{address:"C\xedm:",bandwidth:"Becs\xfclt s\xe1vsz\xe9less\xe9g:",bitrate:"Bitsebess\xe9g:",bridgeCount:"Kiszolg\xe1l\xf3 sz\xe1ma: ",connectedTo:"Kapcsol\xf3dva ehhez:",framerate:"K\xe9pkockasebess\xe9g:",less:"Kevesebb megjelen\xedt\xe9se",localaddress:"Helyi c\xedm:",localaddress_plural:"Helyi c\xedmek:",localport:"Helyi port:",localport_plural:"Helyi portok:",more:"T\xf6bb megjelen\xedt\xe9se",packetloss:"Csomagveszt\xe9s:",quality:{good:"J\xf3",inactive
__d(function(e,o,a,n,s,r,c){s.exports={en:"Inglese",af:"Afrikaans",az:"Azero",bg:"Bulgaro",cs:"Ceco",de:"Tedesco",el:"Greco",eo:"Esperanto",es:"Spagnolo",fr:"Francese",hy:"Armeno",it:"Italiano",ja:"Giapponese",ko:"Coreano",nb:"Norvegese bokmal",oc:"Occitano",pl:"Polacco",ptBR:"Portoghese (Brasile)",ru:"Russo",sk:"Slovacco",sl:"Sloveno",sv:"Svedese",tr:"Turco",vi:"Vietnamita",zhCN:"Cinese (Cina)",enGB:"Inglese (Regno Unito)",da:"Danese",ca:"Catalano",zhTW:"",nl:"",hu:"",hr:"",frCA:"",fi:"",et:"",esUS:""}},788,[]);
__d(function(e,i,o,a,t,r,n){t.exports={addPeople:{add:"Invita",countryNotSupported:"Non supportiamo ancora questa destinazione.",countryReminder:"Stai chiamando fuori dagli Stati Uniti? Assicurati d'inserire il prefisso internazionale!",disabled:"Non puoi invitare persone.",failedToAdd:"L'aggiunta di nuove persone \xe8 fallita",footerText:"La chiamata all'esterno \xe8 disabilitata.",loading:"Sto cercando persone e numeri di telefono",loadingNumber:"Sto validando il numero di telefono",loadingPeople:"Sto cercando le persone da invitare",noResults:"Nessun risultato corrispondente",noValidNumbers:"Per favore inserire un numero di telefono",searchNumbers:"Aggiungi numeri di telefono",searchPeople:"Cerca persone",searchPeopleAndNumbers:"Cerca persone o aggiungi i loro numeri di telefono",telephone:"Telefono: {{number}}",title:"Invita persone a questo meeting"},audioDevices:{bluetooth:"Bluetooth",headphones:"Cuffie",phone:"Telefono",speaker:"Vivavoce"},audioOnly:{audioOnly:"Solo audio"},calendarSync:{addMeetingURL:"Aggiungi un collegamento alla conferenza",confirmAddLink:"Vuoi aggiungere un collegamento Jitsi a questo evento?",error:{appConfiguration:"L'integrazione del calendario non \xe8 configurata in modo appropriato.",generic:"\xc8 stato riscontrato un errore. Controllare le impostazioni del calendario o ricaricare la pagina.",notSignedIn:"\xc8 stato riscontrato un errore durante l'autenticazione per la visualizzazione degli eventi del calendario. Controllare le impostazioni del calendario e provare a ripetere l'accesso."},join:"Partecipa",joinTooltip:"Partecipa alla conferenza",nextMeeting:"prossimo meeting",noEvents:"Non ci sono eventi programmati a breve.",ongoingMeeting:"conferenza in corso",permissionButton:"Apri impostazioni",permissionMessage:"Per visualizzare la lista delle conferenze nell'app \xe8 richiesto il permesso Calendario",refresh:"Aggiorna calendario",today:"Oggi"},chat:{error:"Errore: il tuo messaggio \u201c{{originalText}}\u201d non e\u2019 stato inviato. Motivo: {{error}}",messagebox:"Digitare un messaggio",nickname:{popover:"Scegli un nickname",title:"Inserire un nickname per utilizzare la chat"},title:"Chat"},connectingOverlay:{joiningRoom:"Collegamento al tuo meeting in corso\u2026"},connection:{ATTACHED:"Collegato",AUTHENTICATING:"Autenticazione",AUTHFAIL:"Autenticazione fallita",CONNECTED:"Connesso",CONNECTING:"Connessione",CONNFAIL:"Connessione non riuscita",DISCONNECTED:"Disconnesso",DISCONNECTING:"Disconnessione in corso",ERROR:"Errore",RECONNECTING:"Si \xe8 verificato un problema di rete. Riconnessione..."},connectionindicator:{address:"Indirizzo:",bandwidth:"Banda stimata:",bitrate:"Bitrate:",bridgeCount:"Contatore server:",connectedTo:"Connesso a:",framerate:"Fotogrammi al secondo:",less:"Mostra meno",localaddress:"Indirizzo locale:",localaddress_plural:"Indirizzi locali:",localport:"Porta locale:",localport_plural:"Porte locali:",more:"Mostra di pi\xf9",packetloss:"Perdita pacchetti:",quality:{good:"Buona",inactive:"Inattiva",lost:"Persa",nonoptimal:"Non ottimale",poor:"Scarsa"},remoteaddress:"Indirizzo remoto:",remoteaddress_plural:"Indirizzi remoti:",remoteport:"Porta remota:",remoteport_plural:"Porte remote:",resolution:"Risoluzione:",status:"Connessione:",transport:"Trasporto:",turn:"(ruota)"},dateUtils:{earlier:"Prima",today:"Oggi",yesterday:"Ieri"},deepLinking:{appNotInstalled:"Per partecipare a questo meeting sul tuo telefono ti serve l'app mobile di {{app}}",description:"Non \xe8 successo nulla? Abbiamo provato ad avviare la tua videoconferenza sull'app desktop di {{app}}. Prova di nuovo o avviala nell'app web di {{app}}.",descriptionWithoutWeb:"",downloadApp:"Scarica l'app",launchWebButton:"Avvia sul web",openApp:"Prosegui verso l'app",title:"Sto avviando la tua videoconferenza su {{app}}\u2026",tryAgainButton:"Prova di nuovo sul desktop"},defaultLink:"es. {{url}}",deviceError:{cameraError:"Impossibile accedere alla videocamera",cameraPermission:"Errore nell'ottenere i permessi per la videocamera",microphoneError:"Impossibile accedere al microfono",microphonePermission:"Errore ne
__d(function(e,s,o,t,n,r,a){n.exports={en:"\u82f1\u8a9e",af:"\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e",az:"\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e",bg:"\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e",cs:"\u30c1\u30a7\u30b3\u8a9e",de:"\u30c9\u30a4\u30c4\u8a9e",el:"\u30ae\u30ea\u30b7\u30a2\u8a9e",eo:"\u30a8\u30b9\u30da\u30e9\u30f3\u30c8\u8a9e",es:"\u30b9\u30da\u30a4\u30f3\u8a9e",fr:"\u30d5\u30e9\u30f3\u30b9\u8a9e",hy:"\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e",it:"\u30a4\u30bf\u30ea\u30a2\u8a9e",ja:"\u65e5\u672c\u8a9e",ko:"\u97d3\u56fd\u8a9e",nb:"\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30d6\u30fc\u30af\u30e2\u30fc\u30eb)",oc:"\u30aa\u30c3\u30af\u8a9e",pl:"\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e",ptBR:"\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e (\u30d6\u30e9\u30b8\u30eb)",ru:"\u30ed\u30b7\u30a2\u8a9e",sk:"\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e",sl:"\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e",sv:"\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e",tr:"\u30c8\u30eb\u30b3\u8a9e",vi:"\u30d9\u30c8\u30ca\u30e0\u8a9e",zhCN:"\u4e2d\u56fd\u8a9e (\u4e2d\u56fd)"}},790,[]);
__d(function(e,o,i,r,t,n,a){t.exports={addPeople:{add:"\u62db\u5f85",countryNotSupported:"\u79c1\u305f\u3061\u306f\u3053\u306e\u5b9b\u5148\u3092\u307e\u3060\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002",countryReminder:"\u7c73\u56fd\u5916\u306b\u30b3\u30fc\u30eb\u3057\u307e\u3059\u304b\uff1f \u56fd\u30b3\u30fc\u30c9\u3067\u59cb\u307e\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff01",disabled:"\u4eba\u3092\u62db\u5f85\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002",failedToAdd:"",footerText:"\u30c0\u30a4\u30e4\u30eb\u30a2\u30a6\u30c8\u304c\u7121\u52b9\u3067\u3059\u3002",loading:"\u4eba\u3068\u96fb\u8a71\u756a\u53f7\u3092\u691c\u7d22\u3059\u308b",loadingNumber:"\u96fb\u8a71\u756a\u53f7\u3092\u691c\u8a3c\u3057\u3066\u3044\u307e\u3059",loadingPeople:"\u62db\u5f85\u3059\u308b\u4eba\u3092\u691c\u7d22\u3059\u308b",noResults:"\u4e00\u81f4\u3059\u308b\u691c\u7d22\u7d50\u679c\u304c\u3042\u308a\u307e\u305b\u3093",noValidNumbers:"\u96fb\u8a71\u756a\u53f7\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",searchNumbers:"\u96fb\u8a71\u756a\u53f7\u3092\u8ffd\u52a0",searchPeople:"\u4eba\u3092\u691c\u7d22\u3059\u308b",searchPeopleAndNumbers:"\u4eba\u3092\u691c\u7d22\u3059\u308b\u304b\u3001\u96fb\u8a71\u756a\u53f7\u3092\u8ffd\u52a0\u3059\u308b",telephone:"\u96fb\u8a71\uff1a {{number}}",title:"\u3053\u306e\u4f1a\u8b70\u306b\u4eba\u3092\u62db\u5f85\u3059\u308b"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u30d8\u30c3\u30c9\u30d5\u30a9\u30f3",phone:"\u96fb\u8a71",speaker:"\u30b9\u30d4\u30fc\u30ab\u30fc"},audioOnly:{audioOnly:"\u30aa\u30fc\u30c7\u30a3\u30aa\u306e\u307f"},calendarSync:{addMeetingURL:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u30ea\u30f3\u30af\u3092\u8ffd\u52a0\u3059\u308b",confirmAddLink:"\u3053\u306e\u30a4\u30d9\u30f3\u30c8\u306b\u30d3\u30c7\u30aa\u4f1a\u8b70\u30ea\u30f3\u30af\u3092\u5f35\u308a\u4ed8\u3051\u307e\u3059\u304b\u3002",error:{appConfiguration:"\u30ab\u30ec\u30f3\u30c0\u30fc\u6a5f\u80fd\u304c\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044",generic:"\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u30ab\u30ec\u30f3\u30c0\u30fc\u6a5f\u80fd\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3001\u3082\u3057\u304f\u306f\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u66f4\u65b0\u3057\u3066\u304f\u3060\u3055\u3044",notSignedIn:"\u8a8d\u8a3c\u4e2d\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3001\u30ed\u30b0\u30a4\u30f3\u3057\u76f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002"},join:"\u53c2\u52a0",joinTooltip:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3059\u308b",nextMeeting:"\u6b21\u306e\u4f1a\u8b70",noEvents:"",ongoingMeeting:"\u4f1a\u8b70\u4e2d",permissionButton:"\u8a2d\u5b9a\u3092\u958b\u304f",permissionMessage:"\u30a2\u30d7\u30ea\u306b\u4f1a\u8b70\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30ab\u30ec\u30f3\u30c0\u30fc\u306e\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u304c\u5fc5\u8981\u3067\u3059\u3002",refresh:"\u30ab\u30ec\u30f3\u30c0\u30fc\u3092\u66f4\u65b0\u3059\u308b",today:"\u4eca\u65e5"},chat:{error:"\u30a8\u30e9\u30fc: \"{{originalText}}\" \u304c\u307e\u3060\u9001\u4fe1\u3055\u308c\u3066\u3044\u307e\u305b\u3093. \u30a8\u30e9\u30fc\uff1a {{error}}",messagebox:"\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u66f8\u3044\u3066\u304f\u3060\u3055\u3044",nickname:{popover:"\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3092\u5165\u529b",title:"\u30c1\u30e3\u30c3\u30c8\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0\u3092\u8a18\u5165\u3057\u3066\u304f\u3060\u3055\u3044"},title:"\u30c1\u30e3\u30c3\u30c8"},connectingOverlay:{joiningRoom:"\u30df\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u53c2\u52a0\u3057\u3066\u3044\u307e\u3059\u3002\u3002\u3002"},connection:{ATTACHED:"\u6dfb\u4ed8\u3055\u308c\u305f",AUTHENTICATING:"\u8a8d\u8a3c\u4e2d",AUTHFAIL:"\u8a8d\u8a3c\u306b\u5931\u6557\u3057\u307e\u3057\u305f",CONNECTED:"\u63a5\u7d9a\u3055\u308c\u307e\u3057\u305f",CONNECTING:"\u63a5\u7d9a\u4e2d",CONNFAIL:"\u63a5\u7d9a\u306b\u5931\u6557\u3057\u3
__d(function(e,s,o,t,n,r,a){n.exports={en:"\uc601\uc5b4",af:"",az:"\uc544\uc81c\ub974\ubc14\uc774\uc794\uc5b4",bg:"\ubd88\uac00\ub9ac\uc5b4",cs:"\uccb4\ucf54\uc5b4",de:"\ub3c5\uc77c\uc5b4",el:"\uadf8\ub9ac\uc2a4\uc5b4",eo:"\uc5d0\uc2a4\ud398\ub780\ud1a0\uc5b4",es:"\uc2a4\ud398\uc778\uc5b4",fr:"\ud504\ub791\uc2a4\uc5b4",hy:"\uc544\ub974\uba54\ub2c8\uc544\uc5b4",it:"\uc774\ud0c8\ub9ac\uc544\uc5b4",ja:"\uc77c\ubcf8\uc5b4",ko:"\ud55c\uad6d\uc5b4",nb:"\ub178\ub974\uc6e8\uc774\uc5b4",oc:"",pl:"\ud3f4\ub780\ub4dc\uc5b4",ptBR:"\ud3ec\ub974\ud22c\uac08\uc5b4(\ube0c\ub77c\uc9c8)",ru:"\ub7ec\uc2dc\uc544\uc5b4",sk:"\uc2ac\ub85c\ubc14\ud0a4\uc544\uc5b4",sl:"\uc2ac\ub85c\ubca0\ub2c8\uc544\uc5b4",sv:"\uc2a4\uc6e8\ub374\uc5b4",tr:"\ud130\ud0a4\uc5b4",vi:"\ubca0\ud2b8\ub0a8\uc5b4",zhCN:"\uc911\uad6d\uc5b4(\uc911\uad6d)"}},792,[]);
__d(function(e,o,i,r,t,n,a){t.exports={addPeople:{add:"\ucd08\ub300",countryNotSupported:"\uc544\uc9c1 \ud574\ub2f9 \uc9c0\uc5ed\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4",countryReminder:"\ubbf8\uad6d \uc774\uc678\uc758 \uc9c0\uc5ed\uc73c\ub85c \uc804\ud654\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? \uad6d\uac00 \ubc88\ud638\ub85c \uc2dc\uc791\ud574\uc57c\ud569\ub2c8\ub2e4!",disabled:"\uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4",failedToAdd:"",footerText:"",loading:"\uc0ac\ub78c \ubc0f \uc804\ud654\ubc88\ud638 \uac80\uc0c9",loadingNumber:"\uc804\ud654\ubc88\ud638 \ud655\uc778 \uc911",loadingPeople:"\ucd08\ub300\ud560 \uc0ac\ub78c \ucc3e\uae30",noResults:"\uc77c\uce58\ud558\ub294 \uac80\uc0c9 \uacb0\uacfc \uc5c6\uc74c",noValidNumbers:"\uc804\ud654 \ubc88\ud638\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624.",searchNumbers:"\uc804\ud654\ubc88\ud638 \ucd94\uac00",searchPeople:"\uc778\uba85 \uac80\uc0c9",searchPeopleAndNumbers:"\uc778\uba85 \uac80\uc0c9 \ub610\ub294 \uc804\ud654\ubc88\ud638 \ucd94\uac00",telephone:"\uc804\ud654: {{number}}",title:"\uc774 \ud68c\uc758\uc5d0 \uc0ac\ub78c\ub4e4\uc744 \ucd08\ub300\ud558\uc2ed\uc2dc\uc624"},audioDevices:{bluetooth:"\ube14\ub8e8\ud22c\uc2a4",headphones:"\ud5e4\ub4dc\ud3f0",phone:"\ud3f0",speaker:"\uc2a4\ud53c\ucee4"},audioOnly:{audioOnly:"\uc74c\uc131 \uc804\uc6a9"},calendarSync:{addMeetingURL:"",confirmAddLink:"",error:{appConfiguration:"",generic:"",notSignedIn:""},join:"",joinTooltip:"",nextMeeting:"\ub2e4\uc74c \ud68c\uc758",noEvents:"",ongoingMeeting:"",permissionButton:"\uc124\uc815 \uc5f4\uae30",permissionMessage:"\uc571\uc5d0 \ud68c\uc758\ub97c \ub098\uc5f4\ud558\ub824\uba74 \uce98\ub9b0\ub354 \uad8c\ud55c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4",refresh:"",today:""},chat:{error:"",messagebox:"",nickname:{popover:"\ub2c9\ub124\uc784\uc744 \uc120\ud0dd\ud558\uc138\uc694",title:""},title:""},connectingOverlay:{joiningRoom:""},connection:{ATTACHED:"\ucca8\ubd80",AUTHENTICATING:"\uc778\uc99d \uc911",AUTHFAIL:"\uc778\uc99d \uc2e4\ud328",CONNECTED:"\uc5f0\uacb0 \ub428",CONNECTING:"\uc5f0\uacb0 \uc911",CONNFAIL:"\uc5f0\uacb0 \uc2e4\ud328",DISCONNECTED:"\uc5f0\uacb0 \ub04a\uae40",DISCONNECTING:"\uc5f0\uacb0 \uc885\ub8cc \uc911",ERROR:"\uc5d0\ub7ec",RECONNECTING:"\ub124\ud2b8\uc6cc\ud06c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \ub2e4\uc2dc \uc5f0\uacb0 \uc911..."},connectionindicator:{address:"\uc8fc\uc18c:",bandwidth:"\uc608\uc0c1 \ub300\uc5ed\ud3ed:",bitrate:"\uc804\uc1a1\ub960:",bridgeCount:"",connectedTo:"",framerate:"\ud504\ub808\uc784 \uc18d\ub3c4:",less:"\uac04\ub7b5\ud788 \ubcf4\uae30",localaddress:"",localport:"",more:"\uc790\uc138\ud788 \ubcf4\uae30",packetloss:"\ud328\ud0b7 \uc190\uc2e4:",quality:{good:"\uc88b\uc74c",inactive:"Inactive",lost:"Lost",nonoptimal:"Nonoptimal",poor:"Poor"},remoteaddress:"",remoteport:"",resolution:"\ud574\uc0c1\ub3c4:",status:"\uc5f0\uacb0:",transport:"",turn:" (turn)"},dateUtils:{earlier:"",today:"",yesterday:""},deepLinking:{appNotInstalled:"\uc911\uacc4 \uc11c\ube44\uc2a4\uc5d0 \ucc38\uc5ec\ud558\ub824\uba74 \ubaa8\ubc14\uc77c \uc571 \uc124\uce58\uac00 \ud544\uc694\ud569\ub2c8\ub2e4",description:"{{app}} \ub370\uc2a4\ud06c\ud1b1 \uc571\uc5d0\uc11c \ud68c\uc758\ub97c \uc2dc\uc791\ud588\uc2b5\ub2c8\ub2e4. {{app}} \uc6f9 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uac70\ub098 \uc2e4\ud589\ud558\uc2ed\uc2dc\uc624.",descriptionWithoutWeb:"",downloadApp:"\uc571 \ub2e4\uc6b4\ub85c\ub4dc",launchWebButton:"\uc6f9\uc5d0\uc11c \uc2e4\ud589",openApp:"\ubc29\uc73c\ub85c \uc774\ub3d9\ud558\uae30",title:"{{app}}\uc5d0\uc11c \ud68c\uc758 \uc2dc\uc791\u2026",tryAgainButton:"\ub370\uc2a4\ud06c\ud1b1\uc5d0\uc11c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uc2ed\uc2dc\uc624"},defaultLink:"e.g. {{url}}",deviceError:{cameraError:"\uce74\uba54\ub77c\uc5d0 \uc561\uc138\uc2a4\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4",cameraPermission:"\uce74\uba54\ub77c \uad8c\ud55c\uc744 \uc5bb\ub294 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4",microphoneError:"\ub9c8\uc774\ud06c\u
__d(function(s,a,e,n,i,r,o){i.exports={en:"Engels",af:"Afrikaans",az:"Azerbeidzjaans",bg:"Bulgaars",ca:"Catalaans",cs:"Tsjechisch",da:"Deens",de:"Duits",enGB:"Engels (Verenigd Koninkrijk)",et:"Estlands",el:"Grieks",eo:"Esperanto",es:"Spaans",esUS:"Spaans (Latijns Amerika)",fi:"Fins",fr:"Frans",frCA:"Frans (Canadees)",hr:"Kroatisch",hu:"Hongaars",hy:"Armeens",it:"Italiaans",ja:"Japans",ko:"Koreaans",nb:"Noors (Bokmal)",nl:"Nederlands",oc:"Occitaans",pl:"Pools",ptBR:"Portugees (Brazili\xeb)",ru:"Russisch",sk:"Slowaaks",sl:"Sloveens",sv:"Zweeds",tr:"Turks",vi:"Vietnamees",zhCN:"Chinees (China)",zhTW:"Chinees (Taiwan)"}},794,[]);
__d(function(e,n,r,t,o,i,a){o.exports={addPeople:{add:"Uitnodigen",addContacts:"Nodig uw contacten uit",copyInvite:"Uitnodiging voor vergadering kopi\xebren",copyLink:"Link naar vergadering kopi\xebren",copyStream:"Link naar livestream kopi\xebren",countryNotSupported:"Deze bestemming wordt nog niet ondersteund.",countryReminder:"Belt u buiten de Verenigde Staten? Vergeet dan niet met de landcode te beginnen.",defaultEmail:"Uw Standaard E-mail",disabled:"U kunt geen personen uitnodigen.",failedToAdd:"Het toevoegen van deelnemers is mislukt",footerText:"Uitgaande oproepen zijn uitgeschakeld.",googleEmail:"Google E-mail",inviteMoreHeader:"U bent de enige in de vergadering",inviteMoreMailSubject:"Deelnemen aan {{appName}}-vergadering",inviteMorePrompt:"Nodig meer personen uit",linkCopied:"Link gekopieerd naar klembord",loading:"Personen en telefoonnummers aan het zoeken",loadingNumber:"Telefoonnummer aan het valideren",loadingPeople:"Personen om uit te nodigen aan het zoeken",noResults:"Geen resultaten die overeenkomen met de zoekopdracht",noValidNumbers:"Voer een telefoonnummer in",outlookEmail:"Outlook E-mail",searchNumbers:"Telefoonnummers toevoegen",searchPeople:"Personen zoeken",searchPeopleAndNumbers:"Personen zoeken of hun telefoonnummers toevoegen",shareInvite:"Uitnodiging voor vergadering delen",shareLink:"Deel de link naar de vergadering om anderen uit te nodigen",shareStream:"Deel de link naar de livestream",telephone:"Telefoon: {{number}}",title:"Personen uitnodigen voor deze vergadering",yahooEmail:"Yahoo E-mail"},audioDevices:{bluetooth:"Bluetooth",headphones:"Hoofdtelefoon",phone:"Telefoon",speaker:"Speaker",none:"Geen audioapparaten beschikbaar"},audioOnly:{audioOnly:"Lage bandbreedte"},calendarSync:{addMeetingURL:"Een link naar een vergadering toevoegen",confirmAddLink:"Wilt u een Jitsi-link aan deze afspraak toevoegen?",error:{appConfiguration:"De agenda-integratie is niet juist ingesteld.",generic:"Er is een fout opgetreden. Controleer uw agenda-instellingen of vernieuw de agenda.",notSignedIn:"Er is een fout opgetreden tijdens de authenticering voor het zien van agenda-afspraken. Controleer uw agenda-instellingen en probeer u opnieuw aan te melden."},join:"Deelnemen",joinTooltip:"Deelnemen aan de vergadering",nextMeeting:"volgende vergadering",noEvents:"Er zijn geen aankomende afspraken gepland.",ongoingMeeting:"actieve vergadering",permissionButton:"Instellingen openen",permissionMessage:"Het Agenda-toegangsrecht is nodig om uw afspraken in de app te zien.",refresh:"Agenda vernieuwen",today:"Vandaag"},chat:{error:"Fout: uw bericht \"{{originalText}}\" is niet verzonden. Reden: {{error}}",fieldPlaceHolder:"Typ hier uw bericht",messagebox:"Typ een bericht",messageTo:"Priv\xe9bericht aan {{recipient}}",noMessagesMessage:"Er zijn nog geen berichten in de vergadering. Begin hier een gesprek!",nickname:{popover:"Kies een bijnaam",title:"Voer een bijnaam in om chat te gebruiken"},privateNotice:"Priv\xe9bericht aan {{recipient}}",title:"Chat",you:"u"},chromeExtensionBanner:{installExtensionText:"Installeer de extensie voor Google Calendar en Office 365 integratie",buttonText:"Installeer Chrome Extensie",dontShowAgain:"Laat me dit niet meer zien"},connectingOverlay:{joiningRoom:"U wordt verbonden met uw vergadering..."},connection:{ATTACHED:"Bijgevoegd",AUTHENTICATING:"Authenticeren",AUTHFAIL:"Authenticering mislukt",CONNECTED:"Verbonden",CONNECTING:"Verbinding maken",CONNFAIL:"Verbinding mislukt",DISCONNECTED:"Verbinding verbroken",DISCONNECTING:"Verbinding verbreken",ERROR:"Fout",FETCH_SESSION_ID:"Sessie-id ophalen...",GET_SESSION_ID_ERROR:"Fout bij ophalen sessie-id: {{code}}",GOT_SESSION_ID:"Sessie-id ophalen... Klaar",LOW_BANDWIDTH:"Video voor {{displayName}} is uitgeschakeld om bandbreedte te besparen"},connectionindicator:{address:"Adres:",bandwidth:"Geschatte bandbreedte:",bitrate:"Bitrate:",bridgeCount:"Aantal servers: ",connectedTo:"Verbonden met:",e2e_rtt:"E2E RTT:",framerate:"Framesnelheid:",less:"Minder weergeven",localaddress:"Lokaal adres:",localaddress_plural:"Lokale adressen:",localport:"Lokale
__d(function(a,n,s,i,r,e,t){r.exports={en:"Angl\xe9s",af:"Afrikaans",bg:"Bulgar",ca:"Catalan",cs:"Ch\xe8c",de:"Aleman",el:"Gr\xe8c",enGB:"Angl\xe9s (Reialme Unit)",eo:"Esperanto",es:"Castelhan",esUS:"Espanh\xf2l (America latina)",fi:"Fin\xe9s",fr:"Franc\xe9s",frCA:"Franc\xe9s (Canadian)",hr:"Croat",hu:"Ongr\xe9s",hy:"Armenian",it:"Italian",ja:"Japon\xe9s",ko:"Corean",nl:"Neerland\xe9s",oc:"Occitan",pl:"Polon\xe9s",ptBR:"Portugu\xe9s (Brasil)",ru:"Rus",sv:"Sued\xe9s",tr:"Turc",vi:"Vietnamian",zhCN:"Chin\xe9s (China)",zhTW:"Chin\xe9s (Taiwan)",et:"Estonian",da:"Dan\xe9s",uk:"Ucra\xefnian",th:"Tai",sk:"Eslovac",sc:"Sarde",lt:"Lituanian",id:"Indonesian",he:"Ebr\xe8u",eu:"Basc",mr:"Marathi",sl:"Eslov\xe8n",ro:"Romanian",ar:"Arabi"}},796,[]);
__d(function(a,e,r,n,o,t,i){o.exports={addPeople:{add:"Convidar",countryNotSupported:"S\xe8m pas encara compatibles amb aquesta destinacion.",countryReminder:"Sonatz def\xf2ra los US\u202f? Merc\xe9s de vos assegurar de comen\xe7ar amb lo c\xf2di pa\xeds.",disabled:"Pod\xe8tz pas convidar de monde.",failedToAdd:"Frac\xe0s de l'ajust de participants",footerText:"Sonadas ext. desactivadas.",loading:"Rec\xe8rca de monde e de num\xe8ro de telef\xf2n",loadingNumber:"Validacion del num\xe8ro de telef\xf2n",loadingPeople:"Rec\xe8rca de monde de convidar",noResults:"Pas cap de resultat trobat",noValidNumbers:"Picatz lo num\xe8ro de telef\xf2n",searchNumbers:"Apondre de num\xe8ros de telef\xf2n",searchPeople:"Cercar de monde",searchPeopleAndNumbers:"Cercar de monde o apondre lor num\xe8ros de telef\xf2n",telephone:"Telef\xf2n\u202f: {{number}}",title:"Convidatz de monde a v\xf2stra confer\xe9ncia",shareStream:"Partejar la ligam de la difusion en dir\xe8cte",copyStream:"Copiar lo ligam de la difusion en dir\xe8cte",yahooEmail:"Yahoo Email",outlookEmail:"Outlook Email",shareLink:"Partejar lo ligam de la confer\xe9ncia per convidar de monde",shareInvite:"Partejar invitacion confer\xe9ncia",linkCopied:"Ligam copiat al quichapapi\xe8rs",inviteMorePrompt:"Convidar mai de monde",inviteMoreMailSubject:"Rej\xf3nher la confer\xe9ncia {{appName}}",inviteMoreHeader:"S\xe8tz l\u2019unica persona de la confer\xe9ncia",googleEmail:"Google Email",defaultEmail:"V\xf2stre email per defaut",copyLink:"Copiar lo ligam de la confer\xe9ncia",copyInvite:"Copiar l\u2019invitacion a la confer\xe9ncia",addContacts:"Convidatz v\xf2stres contactes"},audioDevices:{bluetooth:"Bluetooth",headphones:"Escotadors",phone:"Telef\xf2n",speaker:"Nautparlaire",none:"Cap de periferic \xe0udio pas disponible"},audioOnly:{audioOnly:"Benda passanta febla"},calendarSync:{addMeetingURL:"Ajustar un ligam de re\xfcnion",confirmAddLink:"Vol\xe8tz ajustar un ligam Jitsi cap a aqueste eveniment ?",error:{appConfiguration:"L\u2019integracion del calendi\xe8r es pas corr\xe8ctament configurada.",generic:"Una error s\u2019es producha. Verificatz v\xf2stres param\xe8tres de calendi\xe8r o ensajatz de l\u2019actualizar.",notSignedIn:"Una error s\u2019es producha pendent l\u2019autentificacion per veire los eveniments del calendi\xe8r. Verificatz los param\xe8tres del calendi\xe8r e connectatz-vos tornamai."},join:"J\xf3nher",joinTooltip:"Rej\xf3nher la confer\xe9ncia",nextMeeting:"confer\xe9ncia venenta",noEvents:"Cap d\u2019eveniments venents pas prevists.",ongoingMeeting:"confer\xe9ncia en cors",permissionButton:"Dobrir los param\xe8tres",permissionMessage:"La permission pel calendari es necess\xe0ria per listar v\xf2stres RDV dins l\u2019aplicacion.",refresh:"Actualizar lo calendari",today:"U\xe8i"},chat:{error:"Error : lo messatge es pas estat enviat. Rason : {{error}}",fieldPlaceHolder:"Picatz v\xf2stre messatge aqu\xed",messagebox:"Picatz un messatge",messageTo:"Messatge privat per {{recipient}}",noMessagesMessage:"I a pas cap de messatge dins la confer\xe9ncia pel moment. Comen\xe7at una conversacion aqu\xed\u202f!",nickname:{popover:"Causiss\xe8tz un escais",title:"Picatz un escais-nom per utilizar la messatjari\xe1"},privateNotice:"Messatge privat per {{recipient}}",title:"Messatjari\xe1",you:"vos"},connectingOverlay:{joiningRoom:"Connexion a v\xf2stra re\xfcnion\u2026"},connection:{ATTACHED:"Estacada",AUTHENTICATING:"Autentificacion en cors",AUTHFAIL:"Frac\xe0s de l'autentificacion",CONNECTED:"Connectat",CONNECTING:"Connexion en cors",CONNFAIL:"Frac\xe0s de la connexion",DISCONNECTED:"Desconnectat",DISCONNECTING:"Desconnexion en cors",ERROR:"Error",RECONNECTING:"Un probl\xe8ma ret s'es produita. Reconnexion en cors...",LOW_BANDWIDTH:"La vid\xe8o per {{displayName}} es estada copada per estalviar la banda passanta",GOT_SESSION_ID:"Obtencion de session-id... Fach",GET_SESSION_ID_ERROR:"Obt\xe9ner l\u2019error session-id\u202f: {{code}}",FETCH_SESSION_ID:"Obtencion de session-id..."},connectionindicator:{address:"Adre\xe7a :",bandwidth:"Benda passanta estimada :",bitrate:"Debi
__d(function(i,k,s,a,e,r,o){e.exports={en:"angielski",af:"afrykanerski",bg:"bu\u0142garski",ca:"katalo\u0144ski",cs:"czeski",de:"niemiecki",el:"grecki",enGB:"angielski (Zjednoczone Kr\xf3lestwo)",eo:"esperanto",es:"hiszpa\u0144ski",esUS:"hiszpa\u0144ski (Ameryka \u0141aci\u0144ska)",fi:"fi\u0144ski",fr:"francuski",frCA:"francuski (kanadyjski)",hr:"chorwacki",hu:"w\u0119gierski",hy:"ormia\u0144ski",it:"w\u0142oski",ja:"japo\u0144ski",ko:"korea\u0144ski",nl:"holenderski",oc:"oksyta\u0144ski",pl:"polski",ptBR:"portugalski (brazylijski)",ru:"rosyjski",sk:"s\u0142owacki",sv:"szwedzki",tr:"turecki",vi:"wietnamski",zhCN:"chi\u0144ski (Chiny)",zhTW:"chi\u0144ski (Tajwan)"}},798,[]);
__d(function(e,o,a,i,n,r,t){n.exports={addPeople:{add:"Zapro\u015b",addContacts:"Zapro\u015b kontakty",copyInvite:"Kopiuj zaproszenie na spotkanie",copyLink:"Kopiuj link spotkania",copyStream:"Kopiuj link transmisji na \u017cywo",countryNotSupported:"Nie obs\u0142ugujemy jeszcze tej lokalizacji.",countryReminder:"Dzwonisz spoza USA? Upewnij si\u0119, \u017ce zaczynasz od kodu kraju!",defaultEmail:"Domy\u015blna poczta",disabled:"Nie mo\u017cesz zaprasza\u0107 ludzi.",failedToAdd:"B\u0142\u0105d dodawania uczestnik\xf3w",footerText:"Wybieranie numeru jest wy\u0142\u0105czone.",googleEmail:"Poczta Google",inviteMoreHeader:"Jeste\u015b jedynym uczestnikiem tego spotkania",inviteMoreMailSubject:"Do\u0142\u0105cz do spotkania {{appName}}",inviteMorePrompt:"Zapro\u015b innych uczestnik\xf3w",linkCopied:"Link skopiowany do schowka",loading:"Szukaj ludzi i numer\xf3w telefon\xf3w",loadingNumber:"Weryfikacja numeru telefonu",loadingPeople:"Wyszukiwanie os\xf3b do zaproszenia",noResults:"Brak pasuj\u0105cych wynik\xf3w wyszukiwania",noValidNumbers:"Prosz\u0119 wpisa\u0107 numer telefonu",outlookEmail:"Poczta Outlook",searchNumbers:"Dodaj numery telefon\xf3w",searchPeople:"Szukaj ludzi",searchPeopleAndNumbers:"Wyszukaj osoby i dodaj ich numery telefonu",shareInvite:"Udost\u0119pnij zaproszenie na spotkanie",shareLink:"Udost\u0119pnij link do spotkania, aby zaprosi\u0107 innych uczestnik\xf3w",shareStream:"Udost\u0119pnij link transmisji na \u017cywo",telephone:"Telefon: {{number}}",title:"Zapro\u015b uczestnik\xf3w na to spotkanie",yahooEmail:"Poczta Yahoo"},audioDevices:{bluetooth:"Bluetooth",headphones:"S\u0142uchawki",phone:"Telefon",speaker:"G\u0142o\u015bnik",none:"Brak dost\u0119pnych urz\u0105dze\u0144 d\u017awi\u0119kowych"},audioOnly:{audioOnly:"Niska przepustowo\u015b\u0107"},calendarSync:{addMeetingURL:"Dodaj odno\u015bnik do spotkania",confirmAddLink:"Czy chcesz doda\u0107 odno\u015bnik Jitsi do tego wydarzenia?",error:{appConfiguration:"Integracja z kalendarzem nie jest skonfigurowana poprawnie.",generic:"Wyst\u0105pi\u0142 problem. Sprawd\u017a ustawienia kalendarza lub spr\xf3buj od\u015bwie\u017cy\u0107 kalendarz.",notSignedIn:"Wyst\u0105pi\u0142 problem podczas uwierzytelniania dost\u0119pu do wydarze\u0144 w kalendarzu. Sprawd\u017a ustawienia kalendarza i spr\xf3buj zalogowa\u0107 si\u0119 ponownie."},join:"Do\u0142\u0105cz",joinTooltip:"Do\u0142\u0105cz do spotkania",nextMeeting:"nast\u0119pne spotkanie",noEvents:"Nie ma zaplanowanych nadchodz\u0105cych wydarze\u0144.",ongoingMeeting:"trwaj\u0105ce spotkanie",permissionButton:"Otw\xf3rz ustawienia",permissionMessage:"Aby zobaczy\u0107 spotkania w aplikacji, wymagane jest zezwolenie dost\u0119pu do kalendarza.",refresh:"Od\u015bwie\u017c kalendarz",today:"Dzisiaj"},chat:{error:"B\u0142\u0105d: Twoja wiadomo\u015b\u0107 nie zosta\u0142a wys\u0142ana. Pow\xf3d: {{error}}",fieldPlaceHolder:"Wpisz wiadomo\u015b\u0107 tutaj",messagebox:"Wpisz wiadomo\u015b\u0107",messageTo:"Prywatna wiadomo\u015b\u0107 do {{recipient}}",noMessagesMessage:"Aktualnie brak wiadomo\u015bci w tym spotkaniu. Rozpocznij konwersacj\u0119!",nickname:{popover:"Wybierz sw\xf3j nick",title:"Wpisz swoj\u0105 nazw\u0119, aby u\u017cy\u0107 rozmowy"},privateNotice:"Prywatna wiadomo\u015b\u0107 do {{recipient}}",title:"Rozmowa",you:"Ty"},chromeExtensionBanner:{installExtensionText:"Zainstaluj rozszerzenie integruj\u0105ce Kalendarz Google i Office 365",buttonText:"Zainstaluj rozszerzenie Chrome",dontShowAgain:"Nie pokazuj ponownie"},connectingOverlay:{joiningRoom:"\u0141\u0105czenie ze spotkaniem\u2026"},connection:{ATTACHED:"Za\u0142\u0105cznik",AUTHENTICATING:"Uwierzytelnianie",AUTHFAIL:"Uwierzytelnianie nie powiod\u0142o si\u0119",CONNECTED:"Po\u0142\u0105czono",CONNECTING:"Nawi\u0105zywanie po\u0142\u0105czenia",CONNFAIL:"Po\u0142\u0105czenie si\u0119 nie powiod\u0142o",DISCONNECTED:"Roz\u0142\u0105czony",DISCONNECTING:"Roz\u0142\u0105czanie",ERROR:"B\u0142\u0105d",FETCH_SESSION_ID:"Uzyskiwanie id sesji...",GET_SESSION_ID_ERROR:"Nie mo\u017cna uzyska\u0107 id sesji. B\u0142\u0105d: {{code}}",GOT
__d(function(a,n,o,s,r,i,e){r.exports={en:"Ingl\xeas",af:"Afric\xe2ner",bg:"B\xfalgaro",ca:"Catal\xe3o",cs:"Checo",de:"Alem\xe3o",el:"Grego",enGB:"Ingl\xeas (Reino Unido)",eo:"Esperanto",es:"Espanhol",esUS:"Espanhol (Am\xe9rica Latina)",fi:"Finland\xeas",fr:"Franc\xeas",frCA:"Franc\xeas (Canad\xe1)",hr:"Croata",hu:"H\xfangaro",hy:"Arm\xeanio",it:"Italiano",ja:"Japon\xeas",ko:"Coreano",nl:"Holand\xeas",oc:"Occitano",pl:"Polon\xeas",ptBR:"Portugu\xeas (Brasil)",ru:"Russo",sv:"Sueco",tr:"Turco",vi:"Vietnamita",zhCN:"Chin\xeas (China)",zhTW:"Chin\xeas (Taiwan)"}},800,[]);
__d(function(e,a,o,r,i,n,s){i.exports={addPeople:{add:"Convidar",countryNotSupported:"Ainda n\xe3o suportamos este destino.",countryReminder:"Ligando de fora dos EUA? Por favor, certifique-se de come\xe7ar com o c\xf3digo do pa\xeds!",disabled:"Voc\xea n\xe3o pode convidar pessoas.",failedToAdd:"Falha em adicionar participantes",footerText:"Discagem est\xe1 desativada.",loading:"Procurando por pessoas e n\xfameros de telefone",loadingNumber:"Validando o n\xfamero de telefone",loadingPeople:"Procurando por pessoas para convidar",noResults:"Nenhum resultado de busca correspondente",noValidNumbers:"Por favor, digite um n\xfamero de telefone",searchNumbers:"Adicionar n\xfameros de telefone",searchPeople:"Pesquisar pessoas",searchPeopleAndNumbers:"Pesquisar por pessoas ou adicionar seus n\xfameros de telefone",telephone:"Telefone: {{number}}",title:"Convide pessoas para sua reuni\xe3o"},audioDevices:{bluetooth:"Bluetooth",headphones:"Fones de ouvido",phone:"Celular",speaker:"Alto-falantes",none:"Sem dispositivos de \xe1udio dispon\xedvel"},audioOnly:{audioOnly:"Largura de banda baixa"},calendarSync:{addMeetingURL:"Adicionar um link da reuni\xe3o",confirmAddLink:"Gostaria de adicionar um link do Jitsi a esse evento?",error:{appConfiguration:"A integra\xe7\xe3o com calend\xe1rio n\xe3o est\xe1 configurada adequadamente.",generic:"Ocorreu um erro. Verifique as configura\xe7\xf5es de calend\xe1rio ou tente atualizar o calend\xe1rio.",notSignedIn:"Ocorreu um erro durante a autentica\xe7\xe3o para visualiza\xe7\xe3o dos eventos do calend\xe1rio. Verifique as configura\xe7\xf5es de calend\xe1rio e tente entrar novamente."},join:"Participar",joinTooltip:"Participar da reuni\xe3o",nextMeeting:"pr\xf3xima reuni\xe3o",noEvents:"N\xe3o h\xe1 eventos pr\xf3ximos agendados.",ongoingMeeting:"reuni\xe3o em progresso",permissionButton:"Abrir configura\xe7\xf5es",permissionMessage:"Permiss\xe3o do calend\xe1rio \xe9 requerida para ver suas reuni\xf5es na aplica\xe7\xe3o.",refresh:"Atualizar calend\xe1rio",today:"Hoje"},chat:{error:"Erro: sua mensagem n\xe3o foi enviada. Motivo: {{error}}",fieldPlaceHolder:"Digite sua mensagem aqui",messagebox:"Digite uma mensagem",messageTo:"Mensagem privada para {{recipient}}",noMessagesMessage:"N\xe3o h\xe1 mensagens na reuni\xe3o ainda. Inicie uma conversa aqui!",nickname:{popover:"Escolha um apelido",title:"Digite um apelido para usar o bate-papo"},privateNotice:"Mensagem privada para {{recipient}}",title:"Bate-papo",you:"voc\xea"},connectingOverlay:{joiningRoom:"Conectando voc\xea \xe0 reuni\xe3o\u2026"},connection:{ATTACHED:"Anexado",AUTHENTICATING:"Autenticando",AUTHFAIL:"Falha de autentica\xe7\xe3o",CONNECTED:"Conectado",CONNECTING:"Conectando",CONNFAIL:"Falha de conex\xe3o",DISCONNECTED:"Desconectado",DISCONNECTING:"Desconectando",ERROR:"Erro",RECONNECTING:"Ocorreu um problema de rede. Reconectando...",LOW_BANDWIDTH:"O v\xeddeo de {{displayName}} foi desativado para economizar largura de banda",GOT_SESSION_ID:"Obtendo ID da sess\xe3o... Feito",GET_SESSION_ID_ERROR:"Erro ao obter o ID da sess\xe3o: {{code}}",FETCH_SESSION_ID:"Obtendo ID da sess\xe3o..."},connectionindicator:{address:"Endere\xe7o:",bandwidth:"Largura de banda estimada:",bitrate:"Taxa de bits:",bridgeCount:"Servidores: ",connectedTo:"Conectado a:",framerate:"Taxa de quadros:",less:"Mostrar menos",localaddress:"Endere\xe7o local:",localaddress_plural:"Endere\xe7os locais:",localport:"Porta local:",localport_plural:"Portas locais:",more:"Mostrar mais",packetloss:"Perda de pacote:",quality:{good:"Boa",inactive:"Inativo",lost:"Perdido",nonoptimal:"N\xe3o \xf3tima",poor:"Ruim"},remoteaddress:"Endere\xe7o remoto:",remoteaddress_plural:"Endere\xe7os remotos:",remoteport:"Porta remota:",remoteport_plural:"Portas remotas:",resolution:"Resolu\xe7\xe3o:",status:"Conex\xe3o:",transport:"Transporte:",transport_plural:"Transportes:",e2e_rtt:"E2E RTT:"},dateUtils:{earlier:"Mais cedo",today:"Hoje",yesterday:"Ontem"},deepLinking:{appNotInstalled:"Voc\xea precisa do aplicativo m\xf3vel {{app}} para participar da reuni\xe3o no seu telefone.",description:"
__d(function(u,a,e,n,s,i,r){s.exports={en:"Inglesu",af:"Afrikaans",bg:"B\xf9lgaru",ca:"Catalanu",cs:"Tzecu",da:"Danesu",de:"Tedescu",el:"Gregu",enGB:"Inglesu (Rennu Unidu)",eo:"Esperanto",es:"Castillianu",esUS:"Castillianu (Am\xe8rica de su Sud)",fi:"Finlandesu",fr:"Frantzesu",frCA:"Frantzesu (Canadesu)",hr:"Croatu",hu:"Ungheresu",hy:"Armenu",it:"Italianu",ja:"Giaponesu",ko:"Coreanu",nl:"Olandesu",oc:"Otzitanu",pl:"Polacu",ptBR:"Portughesu (Brasile)",ru:"Russu",sc:"Sardu",sv:"Isvedesu",tr:"Turcu",vi:"Vietnamita",zhCN:"Tzinesu (Tzina)",zhTW:"Tzinesu (Taiwan)"}},802,[]);
__d(function(e,a,i,n,r,s,t){r.exports={addPeople:{add:"Invita",countryNotSupported:"No est ancora poss\xecbile de impreare custa destinatzione.",countryReminder:"Ses mutende in foras de is Istados Unidos? Ver\xecfica chi insertas su c\xf2dighe de istadu!",disabled:"Non podes invitare gente.",failedToAdd:"Faddina in s'agiunta de partetzipantes",footerText:"Is mutidas in essida sunt disativadas.",loading:"Chirchende gente e n\xf9meros de tel\xe8fonu",loadingNumber:"Verifichende su n\xf9meru de tel\xe8fonu",loadingPeople:"Chirchende gente de invitare",noResults:"Non cointzidet perunu resultadu",noValidNumbers:"Inserta\xb7nche unu n\xf9meru de tel\xe8fonu",searchNumbers:"Agiunghe n\xf9meros de tel\xe8fonu",searchPeople:"Chirca gente",searchPeopleAndNumbers:"Chirca gente o agiunghe is n\xf9meros de tel\xe8fonu issoro",telephone:"Tel\xe8fonu: {{number}}",title:"Invita gente a custa riunione"},audioDevices:{bluetooth:"Bluetooth",headphones:"Auriculares",phone:"Tel\xe8fonu",speaker:"Altoparlante",none:"Perunu dispositivu de \xe0udio a disponimentu"},audioOnly:{audioOnly:"\xc0mpiu de banda b\xe0sciu"},calendarSync:{addMeetingURL:"Agiunghe unu lig\xe0mene a s'add\xf2biu",confirmAddLink:"Boles agi\xf9nghere unu lig\xe0mene de Jitsi a custu add\xf2biu?",error:{appConfiguration:"S'integratzione de su calend\xe0riu no est cunfigurada bene.",generic:"Faddina. Controlla sa cunfiguratzione de calend\xe0riu o proa de atualizare su calend\xe0riu.",notSignedIn:"Faddina in s'autenticatzione pro visualizare eventos de calend\xe0riu. Controlla sa cunfiguratzione de calend\xe0riu e proa de ti torrare a autenticare."},join:"Aderi",joinTooltip:"Aderi a sa riunione",nextMeeting:"riunione imbeniente",noEvents:"Perunu eventu programmadu in futuru.",ongoingMeeting:"riunione in cursu",permissionButton:"Aberi sa cunfiguratzione",permissionMessage:"Su permissu de su calend\xe0riu est rech\xe8didu pro b\xecdere is riuniones tuss in s'aplicatzione.",refresh:"Atualiza su calend\xe0riu",today:"Oe"},chat:{error:"Faddina: su mess\xe0giu tuo no est istadu imbiadu. Resone: {{error}}",fieldPlaceHolder:"Iscrie su mess\xe0giu inoghe",messagebox:"Iscrie unu mess\xe0giu",messageTo:"Mess\xe0giu privadu a {{recipient}}",noMessagesMessage:"Perunu mess\xe0giu ancora in sa riunione. Cumintza una tzarrada inoghe!",nickname:{popover:"S\xe8bera unu n\xf2mine",title:"Inserta su n\xf2mine pro impreare sa tzarrada"},privateNotice:"Mess\xe0giu privadu a {{recipient}}",title:"Tzarrada",you:"tue"},chromeExtensionBanner:{installExtensionText:"Installa s'estensione de integratzione cun Google Calendar e Office 365",buttonText:"Installa s'estensione de Google",dontShowAgain:"Non ddu torres a ammustrare"},connectingOverlay:{joiningRoom:"Connetende a sa riunione..."},connection:{ATTACHED:"Allegados",AUTHENTICATING:"Autenticatzione in cursu",AUTHFAIL:"Faddina in s'autenticatzione",CONNECTED:"Connessione istabilida",CONNECTING:"Connetende",CONNFAIL:"Faddina in sa connessione",DISCONNECTED:"Disconn\xe8tidu",DISCONNECTING:"Disconnetende",ERROR:"Faddina",FETCH_SESSION_ID:"Otenende id de sessione...",GET_SESSION_ID_ERROR:"Faddina in su ritzevimentu de s'ide de sessione: {{code}}",GOT_SESSION_ID:"Otenende id de sessione... Fatu",LOW_BANDWIDTH:"V\xecdeu disativadu pro {{displayName}} pro istraviare \xe0mpiu de banda"},connectionindicator:{address:"Indiritzu:",bandwidth:"\xc0mpiu de banda istimadu:",bitrate:"Velotzidade de bits:",bridgeCount:"N\xf9meru de servidores: ",connectedTo:"Connessione cun:",e2e_rtt:"E2E RTT:",framerate:"Velotzidade de fotogrammas:",less:"Prus pagu informatziones",localaddress:"Indiritzu locale:",localaddress_plural:"Indiritzos locales:",localport:"Portu locale:",localport_plural:"Portos locales:",more:"\xc0teras informatziones",packetloss:"P\xe8rdida de pachetes:",quality:{good:"Bonu",inactive:"Inativa",lost:"P\xe8rdida",nonoptimal:"No \xf2tima",poor:"P\xf2bera"},remoteaddress:"Indiritzu remotu:",remoteaddress_plural:"Indiritzos remotos:",remoteport:"Portu remotu:",remoteport_plural:"Portos remotos:",resolution:"Risolutzione:",status:"Connessione:",transport:"Traspor
__d(function(a,n,e,i,r,l,o){r.exports={en:"Englez\u0103",af:"Afrikaans",ar:"Arab\u0103",bg:"Bulgar\u0103",ca:"Catalan\u0103",cs:"Ceh\u0103",da:"Danez\u0103",de:"German\u0103",el:"Greac\u0103",enGB:"Englez\u0103 (Regatul Unit)",eo:"Esperanto",es:"Spaniol\u0103",esUS:"Spaniol\u0103 (America Latin\u0103)",et:"Eston\u0103",eu:"Basc\u0103",fi:"Finlandez\u0103",fr:"Francez\u0103",frCA:"Francez\u0103 (Canada)",he:"Ebraic\u0103",hr:"Croat\u0103",hu:"Maghiar\u0103",hy:"Armean\u0103",id:"Indonezian\u0103",it:"Italian\u0103",ja:"Japonez\u0103",ko:"Korean\u0103",lt:"Lituanian\u0103",nl:"Olandez\u0103",oc:"Occitan\u0103",pl:"Polonez\u0103",ptBR:"Portughez\u0103 (Brazilia)",ru:"Rus\u0103",ro:"Rom\xe2n\u0103",sc:"Sard\u0103",sk:"Slovac\u0103",sl:"Sloven\u0103",sv:"Suedez\u0103",th:"Thailandez\u0103",tr:"Turc\u0103",uk:"Ucrainean\u0103",vi:"Vietnamez\u0103",zhCN:"Chinez\u0103 (China)",zhTW:"Chinez\u0103 (Taiwan)"}},804,[]);
__d(function(e,i,a,r,t,n,o){t.exports={addPeople:{add:"Ad\u0103uga\u021bi",countryNotSupported:"Serviciul nu este \xeenc\u0103 disponibil \xeen loca\u021bia dumneavoastr\u0103.",countryReminder:"Suna\u021bi \xeen afara SUA? V\u0103 rug\u0103m s\u0103 tasta\u021bi codul \u021barii \xeenaintea num\u0103rului!",disabled:"Nu pute\u021bi ad\u0103uga persoane.",failedToAdd:"Eroare \xeen ad\u0103ugarea membrilor",footerText:"Apelarea \xeen exterior este dezactivat\u0103.",loading:"Se caut\u0103 persoane \u0219i numere de telefon",loadingNumber:"Se valideaz\u0103 num\u0103rul de telefon",loadingPeople:"Se caut\u0103 persoane care pot fi ad\u0103ugate",noResults:"Nu s-au g\u0103sit rezultate",noValidNumbers:"V\u0103 rug\u0103m introduce\u021bi num\u0103rul de telefon",searchNumbers:"Ad\u0103uga\u021bi numere de telefon",searchPeople:"C\u0103uta\u021bi persoane",searchPeopleAndNumbers:"C\u0103uta\u021bi dup\u0103 nume sau dup\u0103 num\u0103rul de telefon",telephone:"Telefon: {{number}}",title:"Ad\u0103uga\u021bi persoane \xeen acest apel video"},audioDevices:{bluetooth:"Bluetooth",headphones:"C\u0103\u0219ti",phone:"Telefon",speaker:"Difuzor",none:""},audioOnly:{audioOnly:"Doar audio"},calendarSync:{addMeetingURL:"Insera\u021bi un link de apel video",confirmAddLink:"Dori\u021bi s\u0103 adauga\u021bi un link Jitsi la acest apel video?",error:{appConfiguration:"Integrarea calendarului nu este configurat\u0103 corespunz\u0103tor.",generic:"A ap\u0103rut o eroare. V\u0103 rug\u0103m s\u0103 verifica\u021bi set\u0103rile calendarului \u0219i apoi re\xeenc\u0103rca\u021bi calendarul.",notSignedIn:"A ap\u0103rut o eroare \xeen procesul de autentificare pentru a vizualiza evenimentele din calendar. V\u0103 rugam s\u0103 verifica\u021bi set\u0103rile calendarului \u0219i apoi s\u0103 v\u0103 autentifica\u021bi din nou."},join:"Participare",joinTooltip:"Participa\u021bi la apelul video",nextMeeting:"urm\u0103torul apel video",noEvents:"Nu sunt alte evenimente programate.",ongoingMeeting:"apel video \xeen desf\u0103\u0219urare",permissionButton:"Accesa\u021bi set\u0103rile",permissionMessage:"Este nevoie de acces la Calendarul dumneavoastr\u0103 pentru a vizualiza program\u0103rile \xeen aplica\u021bie.",refresh:"Actualiza\u021bi calendarul",today:"Azi"},chat:{error:"Eroare: mesajul dumneavoastr\u0103 \"{{originalText}}\" nu a fost trimis. Motiv: {{error}}",messagebox:"Scrie\u021bi mesajul",nickname:{popover:"Alege\u021bi un pseudonim",title:"Introduce\u021bi un pseudonim pentru a conversa"},title:"Apel video",you:"",privateNotice:"",noMessagesMessage:"",messageTo:"",fieldPlaceHolder:""},connectingOverlay:{joiningRoom:"Sunte\u021bi conectat la conversa\u021bia dumneavoastr\u0103 ..."},connection:{ATTACHED:"Ata\u0219at",AUTHENTICATING:"Autentificare",AUTHFAIL:"Autentificare e\u0219uat\u0103",CONNECTED:"Conectat",CONNECTING:"Se conecteaz\u0103",CONNFAIL:"Conectare e\u0219uat\u0103",DISCONNECTED:"Deconectat",DISCONNECTING:"Se deconecteaz\u0103",ERROR:"Eroare",RECONNECTING:"A ap\u0103rut o eroare de re\u021bea. Reconectare...",LOW_BANDWIDTH:"",GOT_SESSION_ID:"",GET_SESSION_ID_ERROR:"",FETCH_SESSION_ID:""},connectionindicator:{address:"Adres\u0103:",bandwidth:"Viteza de transfer estimat\u0103:",bitrate:"Bitrate:",bridgeCount:"Num\u0103rul de servere: ",connectedTo:"Conectat la:",framerate:"Rat\u0103 cadre:",less:"Ar\u0103ta\u021bi mai pu\u021bin",localaddress:"Adres\u0103 locala:",localaddress_plural:"Adrese locale:",localport:"Port local:",localport_plural:"Porturi locale:",more:"Ar\u0103ta\u021bi mai mult",packetloss:"Pachete pierdute:",quality:{good:"Bun",inactive:"Inactiv",lost:"Pierdut",nonoptimal:"Ineficient",poor:"Slab"},remoteaddress:"Adres\u0103 remote:",remoteaddress_plural:"Adresele remote:",remoteport:"Port extern:",remoteport_plural:"Porturi externe:",resolution:"Rezolu\u021bie:",status:"Conexiune:",transport:"Mod Transport:",transport_plural:"Moduri Transport:",turn:" (turn)",e2e_rtt:""},dateUtils:{earlier:"Mai devreme",today:"Azi",yesterday:"Ieri"},deepLinking:{appNotInstalled:"Este necesar\u0103 {{app}} aplica\u021bia mobil\u010
__d(function(e,r,t,f,h,n,o){h.exports={en:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439",af:"\u0410\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441",bg:"\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0438\u0439",ca:"\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438\u0439",cs:"\u0427\u0435\u0448\u0441\u043a\u0438\u0439",de:"\u041d\u0435\u043c\u0435\u0446\u043a\u0438\u0439",el:"\u0413\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0439",enGB:"\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)",eo:"\u042d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e",es:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439",esUS:"\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439 (\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430)",fi:"\u0424\u0438\u043d\u0441\u043a\u0438\u0439",fr:"\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439",frCA:"\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 (\u043a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439)",hr:"\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439",hu:"\u0412\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0438\u0439",hy:"\u0410\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439",it:"\u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439",ja:"\u042f\u043f\u043e\u043d\u0441\u043a\u0438\u0439",ko:"\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439",nl:"\u0413\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439",oc:"\u041e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439",pl:"\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439",ptBR:"\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)",ru:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",sv:"\u0428\u0432\u0435\u0434\u0441\u043a\u0438\u0439",tr:"\u0422\u0443\u0440\u0435\u0446\u043a\u0438\u0439",vi:"\u0412\u044c\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438\u0439",zhCN:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 (\u041a\u0438\u0442\u0430\u0439)",zhTW:"\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 (\u0422\u0430\u0439\u0432\u0430\u043d\u044c)",et:"\u042d\u0441\u0442\u043e\u043d\u0441\u043a\u0438\u0439",da:"\u0414\u0430\u0442\u0441\u043a\u0438\u0439"}},806,[]);
__d(function(e,o,i,t,r,a,n){r.exports={addPeople:{add:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c",addContacts:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u043b\u044e\u0434\u0435\u0439",copyInvite:"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0443",copyLink:"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0443",copyStream:"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u044f\u043c\u0443\u044e \u0442\u0440\u0430\u043d\u0430\u0441\u043b\u044f\u0446\u0438\u044e",countryNotSupported:"\u042d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0430 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.",countryReminder:"\u0412\u044b\u0437\u043e\u0432 \u043d\u0435 \u0432 \u0421\u0428\u0410? \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b!",defaultEmail:"\u0412\u0430\u0448 \u0430\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b",disabled:"\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.",failedToAdd:"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432",footerText:"\u0412\u044b\u0437\u043e\u0432 \u043d\u043e\u043c\u0435\u0440\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d.",googleEmail:"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430 Google",inviteMoreHeader:"\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u043e\u0434\u043d\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0435",inviteMoreMailSubject:"\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u0432\u0441\u0442\u0440\u0435\u0447\u0435 {{appName}} ",inviteMorePrompt:"\u041f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u043b\u044e\u0434\u0435\u0439",linkCopied:"\u0421\u0441\u044b\u043b\u043a\u0430 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430",loading:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",loadingNumber:"\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",loadingPeople:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0434\u043b\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f",noResults:"\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430",noValidNumbers:"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430",outlookEmail:"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430 Outlook",searchNumbers:"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432",searchPeople:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439",searchPeopleAndNumbers:"\u041f\u043e\u0438\u0441\u043a \u043b\u044e\u0434\u0435\u0439 \u0438\u043b\u0438
__d(function(n,a,i,t,e,r,o){e.exports={en:"Angli\u010dtina",af:"",bg:"Bulhar\u0161tina",ca:"Katal\xe1n\u0161tina",cs:"\u010ce\u0161tina",da:"D\xe1n\u0161tina",de:"Nem\u010dina",el:"Gr\xe9\u010dtina",enGB:"Angli\u010dtina (Spojen\xe9 kr\xe1\u013eovstvo)",eo:"Esperanto",es:"\u0160paniel\u010dina",esUS:"Angli\u010dtina (Spojen\xe9 \u0161t\xe1ty americk\xe9)",et:"Est\xf3n\u010dina",fi:"F\xedn\u010dina",fr:"Franc\xfa\u017etina",frCA:"Franc\xfa\u017etina (Kanada)",hr:"Chorv\xe1t\u010dina",hu:"Ma\u010far\u010dina",hy:"Arm\xe9n\u010dina",it:"Talian\u010dina",ja:"Japon\u010dina",ko:"K\xf3rej\u010dina",nl:"Holand\u010dina",oc:"Okcit\xe1n\u0161tina",pl:"Pol\u0161tina",ptBR:"Portugal\u010dina",ru:"Ru\u0161tina",sk:"Sloven\u010dina",sv:"\u0160v\xe9d\u010dina",tr:"Ture\u010dtina",vi:"Vietnam\u010dina",zhCN:"\u010c\xedn\u0161tina (\u010c\xedna)",zhTW:"\u010c\xedn\u0161tina (Taiwan)"}},808,[]);
__d(function(e,a,o,i,n,t,r){n.exports={addPeople:{add:"Pozva\u0165",countryNotSupported:"Zatia\u013e nepodporujeme t\xfato krajinu.",countryReminder:"Medzin\xe1rodn\xfd hovor? Pros\xedm skontrolujte, \u010di telef\xf3nne \u010d\xedslo za\u010d\xedna smerov\xfdm \u010d\xedslo krajiny.",disabled:"Nem\xf4\u017eete pozva\u0165 \u010fal\u0161\xedch \xfa\u010dastn\xedkov.",failedToAdd:"Nepodarilo sa prida\u0165 \xfa\u010dastn\xedka.",footerText:"Odch\xe1dzaj\xface hovory s\xfa zablokovan\xe9.",loading:"H\u013eadanie \xfa\u010dastn\xedkov a telef\xf3nnych \u010d\xedsiel",loadingNumber:"Kontrola telef\xf3nneho \u010d\xedsla",loadingPeople:"H\u013eadanie \xfa\u010dastn\xedkov na pozvanie",noResults:"\u017diadne v\xfdsledky h\u013eadania",noValidNumbers:"Pros\xedm zadajte telef\xf3nne \u010d\xedslo",searchNumbers:"Zadajte telef\xf3nne \u010d\xedsla",searchPeople:"H\u013eadanie \xfa\u010dastn\xedkov",searchPeopleAndNumbers:"H\u013eadanie \xfa\u010dastn\xedkov alebo prid\xe1vanie telef\xf3nny \u010d\xedsel",telephone:"Telef\xf3n: {{number}}",title:"Pozva\u0165 \xfa\u010dastn\xedkov do tejto konferencie"},audioDevices:{bluetooth:"Bluetooth",headphones:"Sluch\xe1tka",phone:"Telef\xf3n",speaker:"Re\u010dn\xedk",none:"\u017diadne zvukov\xe9 zariadenia"},audioOnly:{audioOnly:"Iba zvuk"},calendarSync:{addMeetingURL:"Prida\u0165 odkaz na stretnutie",confirmAddLink:"Chcete pridal Jitsi odkaz do tejto udalosti?",error:{appConfiguration:"Integr\xe1cia s kalend\xe1rom nie je spr\xe1vne nastaven\xe1.",generic:"Stala sa chyba. Skontrolujte si nastavenia kalend\xe1ru a sk\xfaste aktualizova\u0165 kalend\xe1r. ",notSignedIn:"Stala sa chyba po\u010das autentifik\xe1cie pre zobrazovanie kaled\xe1rov\xfdch udalosti. Skontrolujte si nastavenia kalend\xe1ru a sk\xfaste sa znovu prihl\xe1si\u0165."},join:"Z\xfa\u010dastni\u0165 sa",joinTooltip:"Z\xfa\u010dastni\u0165 sa stretnutia",nextMeeting:"nasleduj\xface stretnutie",noEvents:"Nies\xfa napl\xe1novan\xe9 \u017eiadne \u010fal\u0161ie udalosti.",ongoingMeeting:"prebiehaj\xface stretnutie",permissionButton:"Otvori\u0165 nastavenia",permissionMessage:"Aplik\xe1cia potrebuje kalend\xe1rov\xe9 opr\xe1vnenie pre zobranie term\xednov a stretnut\xed ",refresh:"Aktualizova\u0165 kalend\xe1r",today:"Dnes"},chat:{error:"Chyba: va\u0161a spr\xe1va \"{{originalText}}\" nebola poslan\xe1. D\xf4vod: {{error}}",fieldPlaceHolder:"Zadajte sem va\u0161u spr\xe1vu",messagebox:"Nap\xed\u0161te spr\xe1vu",messageTo:"Spr\xe1va pre {{recipient}}",noMessagesMessage:"V tejto konferenci\xed e\u0161te nie je \u017eiadna spr\xe1va. Za\u010dnite tu va\u0161u diskusiu!",nickname:{popover:"Zvo\u013ete meno",title:"Zadajte sem va\u0161u prez\xfdvku"},privateNotice:"S\xfakromn\xe1 spr\xe1va pre {{recipient}}",title:"P\xedsanie",you:"Vy"},chromeExtensionBanner:{installExtensionText:"Nain\u0161talujte roz\u0161\xedrenie pre integr\xe1ciu s Google Calendar a Office 365",buttonText:"In\u0161talova\u0165 Chrome roz\u0161\xedrenie",dontShowAgain:"Upozornenie viac nezobrazova\u0165"},connectingOverlay:{joiningRoom:"Vytv\xe1ra sa spojenie do va\u0161ej konferencie\u2026"},connection:{ATTACHED:"Prilo\u017een\xfd",AUTHENTICATING:"Overujem",AUTHFAIL:"Overenie zlyhalo",CONNECTED:"Pripojen\xfd",CONNECTING:"Prip\xe1jam",CONNFAIL:"Spojenie zlyhalo",DISCONNECTED:"Odpojen\xfd",DISCONNECTING:"Odp\xe1jam",ERROR:"Chyba",RECONNECTING:"Chyba siete. Sk\xfa\u0161am sa znova pripoji\u0165 ...",LOW_BANDWIDTH:"Video pre {{displayName}} bolo vypnut\xe9, aby sa u\u0161etrila prenosov\xe1 kapacita"},connectionindicator:{address:"Adresa:",bandwidth:"Predpokladan\xfd dat. tok:",bitrate:"Prenos. r\xfdchlos\u0165",bridgeCount:"Po\u010det serverov:",connectedTo:"Spojenie s:",e2e_rtt:"E2E RTT:",framerate:"R\xfdchlos\u0165 sn\xedmkovania:",less:"Zobraz menej",localaddress_0:"Lok\xe1lna adresa:",localaddress_1:"Lok\xe1lne adresy:",localaddress_2:"",localport_0:"Lok\xe1lny port:",localport_1:"Lok\xe1lne porty:",localport_2:"",more:"Zobraz viac",packetloss:"Strata packetov:",quality:{good:"Dobr\xe9",inactive:"Neakt\xedvne",lost:"Straten\xe9",nonoptimal:"Nie je optim\xe1lne
__d(function(a,s,k,n,i,e,r){i.exports={en:"Engelska",af:"Afrikaans",az:"",bg:"Bulgariska",cs:"Tjeckiska",de:"Tyska",el:"Grekiska",eo:"Esperanto",es:"Spanska",fr:"Franska",hy:"Armeniska",it:"Italienska",ja:"Japanska",ko:"Koreanska",nb:"Norska (Bokm\xe5l)",oc:"Occitanska",pl:"Polska",ptBR:"Portugisiska (Brasilien)",ru:"Ryska",sk:"Slovakiska",sl:"Slovenska",sv:"Svenska",tr:"Turkiska",vi:"Vietnamesiska",zhCN:"Kinesiska (Kina)",zhTW:"Kinesiska (Taiwan)",nl:"Nederl\xe4ndska",hu:"Ungerska",hr:"Kroatiska",frCA:"Franska (Kanada)",fi:"Finska",et:"Estniska",esUS:"Spanska (Latinamerika)",enGB:"Engelska (Storbritannien)",da:"Danska",ca:"Katalanska"}},810,[]);
__d(function(e,n,t,a,r,i,l){r.exports={addPeople:{add:"Bjud in",countryNotSupported:"Vi st\xf6der inte den h\xe4r platsen \xe4nnu.",countryReminder:"Ringer du till utlandsnummer? B\xf6rja alltid med landskoden.",disabled:"Du kan inte bjuda in andra.",failedToAdd:"Kunde inte l\xe4gga till deltagare",footerText:"Utringningsfunktionen \xe4r avst\xe4ngd.",loading:"S\xf6ker efter personer och telefonnummer",loadingNumber:"Bekr\xe4ftar telefonnummer",loadingPeople:"S\xf6ker efter personer att bjuda in",noResults:"Inga s\xf6ktr\xe4ffar",noValidNumbers:"Ange ett telefonnummer",searchNumbers:"L\xe4gg till telefonnummer",searchPeople:"S\xf6k efter personer",searchPeopleAndNumbers:"S\xf6k efter personer eller l\xe4gg till deras telefonnummer",telephone:"Telefon: {{number}}",title:"Bjud in andra till m\xf6tet"},audioDevices:{bluetooth:"Bluetooth",headphones:"H\xf6rlurar",phone:"Telefon",speaker:"H\xf6gtalare",none:"Inga ljudenheter tillg\xe4ngliga"},audioOnly:{audioOnly:"Enbart ljud"},calendarSync:{addMeetingURL:"L\xe4gg till en m\xf6tesl\xe4nk",confirmAddLink:"Vill du l\xe4gga till en Jitsi-l\xe4nk i h\xe4ndelsen?",error:{appConfiguration:"Kalenderintegrationen \xe4r inte r\xe4tt inst\xe4lld.",generic:"Ett fel har intr\xe4ffat. Kontrollera dina kalenderinst\xe4llningar eller uppdatera kalendern.",notSignedIn:"Ett fel intr\xe4ffade n\xe4r kalenderh\xe4ndelserna autentiserades f\xf6r visning. Kontrollera kalenderinst\xe4llningarna och f\xf6rs\xf6k att logga in igen."},join:"G\xe5 med",joinTooltip:"G\xe5 med i m\xf6tet",nextMeeting:"n\xe4sta m\xf6te",noEvents:"Det finns inga inbokade kommande aktiviteter.",ongoingMeeting:"p\xe5g\xe5ende m\xf6te",permissionButton:"\xd6ppna inst\xe4llningar",permissionMessage:"Till\xe5telse fr\xe5n kalendern kr\xe4vs f\xf6r att se dina m\xf6ten i appen.",refresh:"Uppdatera kalender",today:"Idag"},chat:{error:"Fel: ditt meddelande skickades inte. Orsak: {{error}}",messagebox:"Skriv ett meddelande",nickname:{popover:"V\xe4lj ett namn",title:"Skriv in ett namn f\xf6r att b\xf6rja anv\xe4nda chatten"},title:"Chatt",you:"du",privateNotice:"Privat meddelande till {{recipient}}",noMessagesMessage:"Det finns \xe4nnu inga meddelanden i m\xf6tet. P\xe5b\xf6rja en konversation!",messageTo:"Privat meddelande till {{recipient}}",fieldPlaceHolder:"Skriv ditt meddelande h\xe4r"},connectingOverlay:{joiningRoom:"Ansluter till m\xf6tet\u2026"},connection:{ATTACHED:"Ansluten",AUTHENTICATING:"Kontrollerar beh\xf6righet",AUTHFAIL:"Autentisering misslyckades",CONNECTED:"Ansluten",CONNECTING:"Ansluter",CONNFAIL:"Anslutningen misslyckades",DISCONNECTED:"Fr\xe5nkopplad",DISCONNECTING:"Kopplar fr\xe5n",ERROR:"Fel",RECONNECTING:"Ett n\xe4tverksproblem uppstod. \xc5teransluter\u2026",LOW_BANDWIDTH:"Video f\xf6r {{displayName}} har st\xe4ngts av f\xf6r att spara bandbredd",GOT_SESSION_ID:"H\xe4mta sessions-id ... Klart",GET_SESSION_ID_ERROR:"H\xe4mta sessions-id-fel: {{code}}",FETCH_SESSION_ID:"H\xe4mtar sessions-id \u2026"},connectionindicator:{address:"Adress:",bandwidth:"Ber\xe4knad bandbredd:",bitrate:"Bithastighet:",bridgeCount:"Serverantal: ",connectedTo:"Ansluten till:",framerate:"Bildfrekvens:",less:"Visa mindre",localaddress:"Lokal adress:",localaddress_plural:"Lokala adresser:",localport:"Lokal port:",localport_plural:"Lokala portar:",more:"Visa mer",packetloss:"Paketf\xf6rluster:",quality:{good:"Bra",inactive:"Inaktiv",lost:"F\xf6rlorad",nonoptimal:"Ej optimal",poor:"D\xe5ligt"},remoteaddress:"Fj\xe4rradress:",remoteaddress_plural:"Fj\xe4rradresser:",remoteport:"Fj\xe4rrport:",remoteport_plural:"Fj\xe4rrportar:",resolution:"Uppl\xf6sning:",status:"Anslutning:",transport:"Transport:",transport_plural:"Transporter:",turn:" (turn)",e2e_rtt:"E2E RTT:"},dateUtils:{earlier:"Tidigare",today:"Idag",yesterday:"Ig\xe5r"},deepLinking:{appNotInstalled:"Du beh\xf6ver mobilappen {{app}} f\xf6r att g\xe5 med i det h\xe4r m\xf6tet fr\xe5n din telefon.",description:"H\xe4nde inget? Vi f\xf6rs\xf6kte starta m\xf6tet i programmet {{app}} i din skrivbordsapp. F\xf6rs\xf6k igen eller starta det i webbappen {{app}}.",descriptionWithoutWeb:"H
__d(function(a,n,i,e,o,r,l){o.exports={en:"Angle\u0161\u010dina",af:"Afrikan\u0161\u010dina",az:"Azerbajdan\u0161\u010dina",bg:"Bolgar\u0161\u010dina",cs:"\u010ce\u0161\u010dina",de:"Nem\u0161\u010dina",el:"Gr\u0161\u010dina",eo:"Esperanto",es:"\u0160pan\u0161\u010dina",fr:"Franco\u0161\u010dina",hy:"Armen\u0161\u010dina",it:"Italjan\u0161\u010dina",ja:"Japon\u0161\u010dina",ko:"Korej\u0161\u010dina",nb:"Norve\u0161\u010dina (Bokm\xe5l)",oc:"Okcitan\u0161\u010dina",pl:"Polj\u0161\u010dina",ptBR:"Portugal\u0161\u010dina (Brazilija)",ru:"Ru\u0161\u010dina",sk:"Slova\u0161\u010dina",sl:"Sloven\u0161\u010dina",sv:"\u0160ved\u0161\u010dina",tr:"Tur\u0161\u010dina",vi:"Vietnam\u0161\u010dina",zhCN:"kitaj\u0161\u010dina (poenostavljena)"}},812,[]);
__d(function(e,o,a,i,n,r,t){n.exports={addPeople:{add:"Povabi",countryNotSupported:"Te dr\u017eave \u0161e ne podpiramo.",countryReminder:"Kli\u010dete izven ZDA? Ne pozabite vnesti klicne predpone!",disabled:"Ne morete povabiti drugih.",failedToAdd:"Ni bilo mogo\u010de dodati udele\u017eencev",footerText:"Klicanje navzven je onemogo\u010deno.",loading:"Iskanje kontaktov in telefonskih \u0161tevilk",loadingNumber:"Potrjevanje telefonske \u0161tevilke",loadingPeople:"Iskanje kontaktov, ki jih je mogo\u010de povabiti",noResults:"Ni bilo mogo\u010de najti ustreznih rezultatov",noValidNumbers:"Prosimo, vnesite telefonsko \u0161tevilko",searchNumbers:"Dodaj telefonske \u0161tevilke",searchPeople:"I\u0161\u010di kontakte",searchPeopleAndNumbers:"I\u0161\u010di kontakte in njihove telefonske \u0161tevilke",telephone:"Telefon: {{number}}",title:"Povabite osebe na sre\u010danje"},audioDevices:{bluetooth:"Bluetooth",headphones:"slu\u0161alke",none:"Nobena avdio naprava ni na voljo",phone:"telefon",speaker:"zvo\u010dnik"},audioOnly:{audioOnly:"Samo glas (nizka pasovna \u0161irina)"},calendarSync:{addMeetingURL:"Dodaj povezavo na sre\u010danje",confirmAddLink:"Ali \u017eelite dodati Jitsi povezavo za ta dogodek?",error:{appConfiguration:"Integracija koledarja ni pravilno nastavljena.",generic:"Pri\u0161lo je do napake. Prosimo preverite nastavitve svojega koledarja ali poskusite koledar osve\u017eiti.",notSignedIn:"Pri\u0161lo je do napake pri dostopu do koledarja. Prosimo preverite nastavitve koledarja in se poskusite ponovno prijaviti."},join:"Pridru\u017ei se",joinTooltip:"Pridru\u017ei se sre\u010danju",nextMeeting:"Naslednje sre\u010danje",noEvents:"V kratkem ni na\u010drtovan noben dogodek.",ongoingMeeting:"Aktivna sre\u010danja",permissionButton:"Odpri nastavitve",permissionMessage:"\u010ce \u017eelite svoja sre\u010danja videti v aplikaciji, morate najprej dati dovoljenje za Koledar.",refresh:"Osve\u017ei koledar",today:"Danes"},chat:{error:"Napaka: va\u0161e sporo\u010dilo ni bilo poslano. Razlog: {{error}}",fieldPlaceHolder:"Type your message here",messageTo:"Zasebno sporo\u010dilo za uporabnika {{recipient}}",messagebox:"Vnesite sporo\u010dilo",nickname:{popover:"Izberite svoje ime",title:"Vnesite ime, ki ga \u017eelite uporabljati na sre\u010danju"},noMessagesMessage:"There are no messages in the meeting yet. Start a conversation here!",privateNotice:"Zasebno sporo\u010dilo za uporabnika {{recipient}}",title:"Klepet",you:"vi"},chromeExtensionBanner:{buttonText:"Install Chrome Extension",dontShowAgain:"Don\u2019t show me this again",installExtensionText:"Install the extension for Google Calendar and Office 365 integration"},connectingOverlay:{joiningRoom:"Povezovanje v sobo, kjer poteka sre\u010danje..."},connection:{ATTACHED:"Priklju\u010deno",AUTHENTICATING:"Overjanje",AUTHFAIL:"Overitev je spodletela",CONNECTED:"Povezano",CONNECTING:"Povezovanje",CONNFAIL:"Povezovanje je spodletelo",DISCONNECTED:"Ni povezave",DISCONNECTING:"Prekinjanje povezave",ERROR:"Napaka",FETCH_SESSION_ID:"Pridobivanje ID-ja seje...",GET_SESSION_ID_ERROR:"Napaka pri pridobivanju ID-ja seje: {{code}}",GOT_SESSION_ID:"Pridobivanje ID-ja seje... dokon\u010dano",LOW_BANDWIDTH:"Zaradi manj\u0161e porabe pasovne \u0161irine omre\u017eja je bil video za uporabnika {{displayName}} izklju\u010den",RECONNECTING:"Pri\u0161lo je do omre\u017ene napake. Ponovni poskus...",USER_CONNECTION_INTERRUPTED:"{{displayName}} ima te\u017eave z omre\u017eno povezavo..."},connectionindicator:{address:"Naslov:",bandwidth:"Ocenjena pasovna \u0161irina:",bitrate:"Bitna hitrost:",bridgeCount:"\u0160tevilo stre\u017enikov: ",connectedTo:"Povezan v:",e2e_rtt:"E2E RTT:",framerate:"Frekvenca slik:",less:"Prika\u017ei manj",localaddress:"Lokalni naslov:",localaddress_plural:"Lokalni naslovi:",localport:"Lokalna vrata:",localport_plural:"Lokalna vrata:",more:"Prika\u017ei ve\u010d",packetloss:"Izguba podatkovnih paketkov:",quality:{good:"Dobro",inactive:"Neaktiven",lost:"Izgubljeni",nonoptimal:"Neoptimalno",poor:"Slabo"},remoteaddress:"Oddaljeni naslov:",remoteaddress_plural:"Odda
__d(function(a,e,n,c,i,r,l){i.exports={en:"\u0130ngilizce",af:"Afrikanca",az:"",bg:"Bulgarca",cs:"\xc7ek\xe7e",de:"Almanca",el:"Yunanca",eo:"Esperanto",es:"\u0130spanyolca",fr:"Frans\u0131zca",hy:"Ermenice",it:"\u0130talyanca",ja:"Japonca",ko:"Korece",nb:"Norve\xe7\xe7e Bokmal",oc:"Oksitan dili",pl:"Leh\xe7e",ptBR:"Portekizce (Brezilya)",ru:"Rus\xe7a",sk:"Slovak\xe7a",sl:"Slovence",sv:"Isve\xe7\xe7e",tr:"T\xfcrk\xe7e",vi:"Vietnamca",zhCN:"\xc7ince (\xc7in)",zhTW:"\xc7ince (Tayvan)",nl:"Flemenk\xe7e",hu:"Macarca",hr:"H\u0131rvat\xe7a",frCA:"Frans\u0131zca (Kanada)",fi:"Fince",et:"Estonca",esUS:"\u0130spanyolca (Latin Amerika)",enGB:"\u0130ngilizce (Birle\u015fik Krall\u0131k)",da:"Danca",ca:"Katalanca"}},814,[]);
__d(function(a,e,i,n,r,l,t){r.exports={addPeople:{add:"Davet et",addContacts:"Ki\u015filerinizi davet edin",copyInvite:"Toplant\u0131 davetini kopyala",copyLink:"Toplant\u0131 ba\u011flant\u0131s\u0131n\u0131 kopyala",copyStream:"Canl\u0131 ak\u0131\u015f ba\u011flant\u0131s\u0131n\u0131 kopyala",countryNotSupported:"\xdclke hen\xfcz desteklenmiyor",countryReminder:"D\u0131\u015f bir \xfclkeyi mi ar\u0131yorsunuz? L\xfctfen \xfclke koduyla ba\u015flay\u0131n!",defaultEmail:"Varsay\u0131lan E-postan\u0131z",disabled:"Ki\u015fi davet edemezsiniz.",failedToAdd:"Ki\u015fi eklenemedi",footerText:"D\u0131\u015f arama devre d\u0131\u015f\u0131.",googleEmail:"Google Email",inviteMoreHeader:"Toplant\u0131daki tek ki\u015fisiniz",inviteMoreMailSubject:"{{appName}} toplant\u0131s\u0131na kat\u0131l",inviteMorePrompt:"Daha fazla ki\u015fi davet et",linkCopied:"Ba\u011flant\u0131 panoya kopyaland\u0131",loading:"Ki\u015filer ve telefon numaralar\u0131 aran\u0131yor...",loadingNumber:"Telefon numaras\u0131 do\u011frulan\u0131yor",loadingPeople:"Davet edilecek ki\u015fi aran\u0131yor",noResults:"E\u015fle\u015fen sonu\xe7 bulunamad\u0131",noValidNumbers:"L\xfctfen bir telefon numaras\u0131 girin",outlookEmail:"Outlook Email",searchNumbers:"Telefon numaras\u0131 ekle",searchPeople:"Ki\u015fi ara",searchPeopleAndNumbers:"Ki\u015fi aray\u0131n veya telefon numaras\u0131 ekleyin",shareInvite:"Toplant\u0131 davetini payla\u015f",shareLink:"Kat\u0131l\u0131mc\u0131lar\u0131 davet etmek i\xe7in toplant\u0131 ba\u011flant\u0131s\u0131n\u0131 payla\u015f\u0131n",shareStream:"Canl\u0131 ak\u0131\u015f ba\u011flant\u0131s\u0131n\u0131 payla\u015f\u0131n",telephone:"Telefon numaras\u0131: {{number}}",title:"Bu toplant\u0131ya ki\u015fi davet edin"},audioDevices:{bluetooth:"Bluetooth",headphones:"Kulakl\u0131k",phone:"Telefon",speaker:"Konu\u015fmac\u0131",none:"Ge\xe7erli Ses cihaz\u0131 yok"},audioOnly:{audioOnly:"D\xfc\u015f\xfck bant geni\u015fli\u011fi"},calendarSync:{addMeetingURL:"Bir toplant\u0131 ba\u011flant\u0131s\u0131 ekle",confirmAddLink:"Bu etkinli\u011fe bir toplant\u0131 ba\u011flant\u0131s\u0131 eklensin mi?",error:{appConfiguration:"Takvim entegrasyonu do\u011fru yap\u0131land\u0131r\u0131lmad\u0131.",generic:"Bir hata olu\u015ftu. L\xfctfen takvim ayarlar\u0131n\u0131 kontrol edin veya takvimi yenilemeyi deneyin.",notSignedIn:"Takvim etkinlikleri getirilirken bir hata meydana geldi. L\xfctfen takvim ayarlar\u0131n\u0131 kontrol edin ve tekrar giri\u015f yap\u0131n."},join:"Kat\u0131l",joinTooltip:"Toplant\u0131ya kat\u0131l",nextMeeting:"sonraki toplant\u0131",noEvents:"Planlanm\u0131\u015f bir etkinlik bulunmuyor.",ongoingMeeting:"devam eden toplant\u0131",permissionButton:"Ayarlar\u0131 a\xe7",permissionMessage:"Uygulama i\xe7inde toplant\u0131lar\u0131n\u0131z\u0131 g\xf6r\xfcnt\xfclemek i\xe7in takvim eri\u015fim izni gereklidir.",refresh:"Takvimi yenile",today:"Bug\xfcn"},chat:{error:"Hata: mesaj\u0131n\u0131z g\xf6nderilmedi. Gerek\xe7e: {{error}}",fieldPlaceHolder:"Mesaj\u0131n\u0131z\u0131 buraya yaz\u0131n",messagebox:"Bir mesaj yaz\u0131n",messageTo:"{{recipient}} adl\u0131 ki\u015fiye \xf6zel mesaj",noMessagesMessage:"Toplant\u0131da hen\xfcz mesaj yok. Burada bir konu\u015fma ba\u015flat\u0131n!",nickname:{popover:"Bir takma ad se\xe7in",title:"Sohbette kullanmak i\xe7in bir takma ad girin"},privateNotice:"{{recipient}} i\xe7in \xf6zel mesaj",title:"Sohbet",you:"sen"},connectingOverlay:{joiningRoom:"Toplant\u0131ya ba\u011flan\u0131l\u0131yor..."},connection:{ATTACHED:"Eklenmi\u015f",AUTHENTICATING:"Kimlik do\u011frulan\u0131yor",AUTHFAIL:"Kimlik do\u011frulama ba\u015far\u0131s\u0131z",CONNECTED:"Ba\u011fland\u0131",CONNECTING:"Ba\u011flan\u0131yor",CONNFAIL:"Ba\u011flant\u0131 ba\u015far\u0131s\u0131z",DISCONNECTED:"Ba\u011flant\u0131 kesildi",DISCONNECTING:"Ba\u011flant\u0131 kesiliyor",ERROR:"Hata",RECONNECTING:"Bir ba\u011flant\u0131 hatas\u0131 olu\u015ftu. Tekrar ba\u011flan\u0131yor...",LOW_BANDWIDTH:"Bant geni\u015fli\u011finden tasarruf etmek i\xe7in {{displayName}} ki\u015fisinin videosu kapat\u0131ld\u01
__d(function(n,i,g,T,a,e,h){a.exports={en:"Ti\u1ebfng Anh",af:"Ti\xea\u0301ng Afrika",az:"Ti\xea\u0301ng Azecbaizan",bg:"Ti\u1ebfng Bulgaria",cs:"Ti\xea\u0301ng Se\u0301c",de:"Ti\u1ebfng \u0110\u1ee9c",el:"Ti\xea\u0301ng Nh\xe2\u0323t",eo:"Ti\u1ebfng Esperanto",es:"Ti\u1ebfng T\xe2y Ban Nha",fr:"Ti\u1ebfng Ph\xe1p",hy:"Ti\u1ebfng Acmenia",it:"Ti\u1ebfng \xdd",ja:"Ti\xea\u0301ng Nh\xe2\u0323t",ko:"Ti\xea\u0301ng Ha\u0300n",nb:"Ti\u1ebfng Na Uy",oc:"Ti\u1ebfng Occitan",pl:"Ti\u1ebfng Ba Lan",ptBR:"Ti\u1ebfng B\u1ed3 \u0110\xe0o Nha (Brazil)",ru:"Ti\u1ebfng Nga",sk:"Ti\u1ebfng Slovak",sl:"Ti\u1ebfng Slovenia",sv:"Ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n",tr:"Ti\u1ebfng Th\u1ed5 Nh\u0129 K\u1ef3",vi:"Ti\xea\u0301ng Vi\xea\u0323t",zhCN:"Ti\u1ebfng Hoa (Trung Qu\u1ed1c)"}},816,[]);
__d(function(n,t,i,h,e,a,c){e.exports={addPeople:{add:"M\u1eddi",countryNotSupported:"Chu\u0301ng t\xf4i ch\u01b0a h\xf4\u0303 tr\u01a1\u0323 \u0111i\u0301ch \u0111\xea\u0301n na\u0300y.",countryReminder:"\u0110ang go\u0323i ra ngoa\u0300i My\u0303? \u0110a\u0309m ba\u0309o b\u0103\u0301t \u0111\xe2\u0300u b\u0103\u0300ng ma\u0303 qu\xf4\u0301c gia!",disabled:"Ba\u0323n kh\xf4ng th\xea\u0309 m\u01a1\u0300i th\xeam ng\u01b0\u01a1\u0300i.",failedToAdd:"",footerText:"Quay s\xf4\u0301 bi\u0323 t\u0103\u0301t.",loading:"\u0110ang ti\u0300m ki\xea\u0301m ng\u01b0\u01a1\u0300i ho\u0103\u0323c s\xf4\u0301 \u0111i\xea\u0323n thoa\u0323i.",loadingNumber:"\u0110ang xa\u0301c nh\xe2\u0323n s\xf4\u0301 \u0111i\xea\u0323n thoa\u0323i.",loadingPeople:"\u0110ang ti\u0300m ki\xea\u0301m ng\u01b0\u01a1\u0300i \u0111\xea\u0309 m\u01a1\u0300i",noResults:"Kh\xf4ng ti\u0300m \u0111\u01b0\u01a1\u0323c k\xea\u0301t qua\u0309 kh\u01a1\u0301p",noValidNumbers:"Xin m\u1eddi nh\u1eadp m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchNumbers:"Th\xeam s\u1ed1 \u0111i\u1ec7n tho\u1ea1i",searchPeople:"T\xecm ng\u01b0\u1eddi",searchPeopleAndNumbers:"T\xecm ng\u01b0\u1eddi v\xe0 th\xeam s\u1ed1",telephone:"S\u1ed1:{{number}}",title:"M\u1eddi ng\u01b0\u1eddi tham d\u1ef1 cu\u1ed9c h\u1ecdp n\xe0y"},audioDevices:{bluetooth:"Bluetooth",headphones:"Tai nghe",phone:"\u0110i\u1ec7n tho\u1ea1i",speaker:"Di\u1ec5n gi\u1ea3"},audioOnly:{audioOnly:"Ch\u1ec9 \xe2m thanh"},calendarSync:{addMeetingURL:"Th\xeam m\u1ed9t li\xean k\u1ebft h\u1ecdp",confirmAddLink:"B\u1ea1n c\xf3 mu\u1ed1n th\xeam m\u1ed9t li\xean ki\u1ebft t\u1edbi s\u1ef1 ki\u1ec7n n\xe0y?",error:{appConfiguration:"T\xedch h\u1ee3p l\u1ecbch ch\u01b0a \u0111\u01b0\u1ee3c c\u1ea5u h\xecnh \u0111\xfang.",generic:"M\u1ed9t l\u1ed7i xu\u1ea5t hi\u1ec7n. Vui l\xf2ng ki\u1ec3m tra c\u1ea5u h\xecnh l\u1ecbch ho\u1eb7c th\u1eed l\xe0m t\u01b0\u01a1i l\u1ecbch.",notSignedIn:"M\u1ed9t l\u1ed7i x\u1ea3y ra khi x\xe1c th\u1ef1c \u0111\u1ec3 xem l\u1ecbch s\u1ef1 ki\u1ec7n. Vui l\xf2ng ki\u1ec3m tra c\u1ea5u h\xecnh l\u1ecbch v\xe0 th\u1eed \u0111\u0103ng nh\u1eadp l\u1ea1i."},join:"Tham gia",joinTooltip:"Tham gia cu\u1ecdc h\u1ecdp",nextMeeting:"Cu\u1ed9c h\u1ecdp ti\u1ebfp theo",noEvents:"Kh\xf4ng c\xf3 s\u1ef1 ki\u1ec7n \u0111\u01b0\u1ee3c l\xean l\u1ecbch n\xe0o ti\u1ebfp theo.",ongoingMeeting:"cu\u1ed9c h\u1ecdp \u0111ang di\u1ec5n ra",permissionButton:"M\u1edf c\u1ea5u h\xecnh",permissionMessage:"Y\xeau c\u1ea7u quy\u1ec1n truy c\u1eadp L\u1ecbch \u0111\u1ec3 th\u1ea5y cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n tr\xean \u1ee9ng d\u1ee5ng.",refresh:"L\xe0m t\u01b0\u01a1i l\u1ecbch",today:"H\xf4m nay"},chat:{error:"L\u1ed7i: th\xf4ng \u0111i\u1ec7p c\u1ee7a b\u1ea1n \"{{originalText}}\" kh\xf4ng \u0111\u01b0\u1ee3c g\u1eedi. Nguy\xean nh\xe2n: {{error}}",messagebox:"Nh\u1eadp m\u1ed9t th\xf4ng \u0111i\u1ec7p",nickname:{popover:"Ch\u1ecdn bi\u1ec7t danh",title:"Nh\u1eadp m\u1ed9t t\xean \u0111\u1ec3 s\u1eed d\u1ee5ng Chat"},title:"Chat"},connectingOverlay:{joiningRoom:"\u0110ang k\u1ebft n\u1ed1i t\u1edbi cu\u1ed9c h\u1ecdp c\u1ee7a b\u1ea1n\u2026"},connection:{ATTACHED:"\u0110\xe3 \u0111\xednh k\xe8m",AUTHENTICATING:"\u0110ang x\xe1c th\u1ef1c",AUTHFAIL:"X\xe1c th\u1ef1c th\u1ea5t b\u1ea1i",CONNECTED:"\u0110\xe3 k\u1ebft n\u1ed1i",CONNECTING:"\u0110ang k\u1ebft n\u1ed1i",CONNFAIL:"K\u1ebft n\u1ed1i th\u1ea5t b\u1ea1i",DISCONNECTED:"\u0110\xe3 ng\u1eaft k\u1ebft n\u1ed1i",DISCONNECTING:"\u0110ang ng\u1eaft k\u1ebft n\u1ed1i",ERROR:"L\u1ed7i",RECONNECTING:"\u0110\xe3 x\u1ea3y ra s\u1ef1 c\u1ed1 m\u1ea1ng. \u0110ang k\u1ebft n\u1ed1i l\u1ea1i..."},connectionindicator:{address:"\u0110\u1ecba ch\u1ec9:",bandwidth:"B\u0103ng th\xf4ng \u01b0\u1edbc t\xednh:",bitrate:"T\u1ed1c \u0111\u1ed9:",bridgeCount:"M\xe1y ch\u1ee7:",connectedTo:"\u0110\xe3 k\u1ebft n\u1ed1i t\u1edbi:",framerate:"T\u1ef7 l\u1ec7 khung h\xecnh:",less:"Hi\u1ec3n th\u1ecb \xedt h\u01a1n",localaddress_0:"\u0110\u1ecba ch\u1ec9 \u0111\u1ecba ph\u01b0\u01a1ng:",localaddress_1:"C\xe1c \u0111\u1ecba ch\u1ec9 \u0111\u1ecba ph\u01b0\u01a1ng:",localport_0:"C\u1ed
__d(function(e,r,f,h,n,o,s){n.exports={en:"\u82f1\u8bed",af:"\u5357\u975e\u8377\u5170\u8bed",bg:"\u4fdd\u52a0\u5229\u4e9a\u8bed",ca:"\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed",cs:"\u6377\u514b\u8bed",de:"\u5fb7\u8bed",el:"\u5e0c\u814a\u8bed",enGB:"\u82f1\u8bed\uff08\u82f1\u56fd\uff09",eo:"\u4e16\u754c\u8bed",es:"\u897f\u73ed\u7259\u8bed",esUS:"\u897f\u73ed\u7259\u8bed\uff08\u62c9\u4e01\u7f8e\u6d32\uff09",fi:"\u82ac\u5170\u8bed",fr:"\u6cd5\u8bed",frCA:"\u6cd5\u8bed\uff08\u52a0\u62ff\u5927\uff09",hr:"\u514b\u7f57\u5730\u4e9a\u8bed",hu:"\u5308\u7259\u5229\u8bed",hy:"\u4e9a\u7f8e\u5c3c\u4e9a\u8bed",it:"\u610f\u5927\u5229\u8bed",ja:"\u65e5\u8bed",ko:"\u97e9\u8bed",nl:"\u8377\u5170\u8bed",oc:"\u6b27\u897f\u5766\u8bed",pl:"\u6ce2\u5170\u8bed",ptBR:"\u8461\u8404\u7259\u8bed\uff08\u5df4\u897f\uff09",ru:"\u4fc4\u8bed",sv:"\u745e\u5178\u8bed",tr:"\u571f\u8033\u5176\u8bed",vi:"\u8d8a\u5357\u8bed",zhCN:"\u4e2d\u6587(\u4e2d\u56fd)",zhTW:"\u4e2d\u6587\uff08\u53f0\u6e7e\uff09"}},818,[]);
__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u6dfb\u52a0",countryNotSupported:"\u5f53\u524d\u56fd\u5bb6\u6682\u65f6\u672a\u88ab\u652f\u6301\u3002",countryReminder:"\u5c1d\u8bd5\u5728\u7f8e\u56fd\u4e4b\u5916\u901a\u8bdd\uff1f\u8bf7\u68c0\u67e5\u56fd\u5bb6\u4ee3\u7801\uff01",disabled:"\u5173\u95ed",failedToAdd:"\u6dfb\u52a0\u5931\u8d25",footerText:"\u5e95\u90e8\u6587\u672c",loading:"\u6b63\u5728\u52a0\u8f7d",loadingNumber:"\u6b63\u5728\u52a0\u8f7d\u53f7\u7801",loadingPeople:"\u6b63\u5728\u52a0\u8f7d\u4f1a\u8bae\u4eba\u5458",noResults:"\u6ca1\u6709\u627e\u5230\u67e5\u8be2\u7ed3\u679c",noValidNumbers:"\u65e0\u6548\u53f7\u7801",searchNumbers:"\u67e5\u8be2\u53f7\u7801",searchPeople:"\u67e5\u627e\u4eba\u5458",searchPeopleAndNumbers:"\u641c\u7d22\u6210\u5458\u6216\u6dfb\u52a0\u5176\u7535\u8bdd\u53f7\u7801",telephone:"\u7535\u8bdd\u53f7\u7801\uff1a {{number}}",title:"\u4f1a\u8bae\u6807\u9898"},audioDevices:{bluetooth:"\u84dd\u7259",headphones:"\u8033\u673a",phone:"\u7535\u8bdd",speaker:"\u53d1\u8a00\u4eba",none:"\u6ca1\u6709\u53ef\u7528\u7684\u97f3\u9891\u8bbe\u5907"},audioOnly:{audioOnly:"\u4ec5\u8bed\u97f3\u652f\u6301"},calendarSync:{addMeetingURL:"\u6dfb\u52a0\u4f1a\u8bae\u94fe\u63a5",confirmAddLink:"\u662f\u5426\u5728\u6b64\u4e8b\u4ef6\u4e2d\u6dfb\u52a0Jitsi\u94fe\u63a5",error:{appConfiguration:"\u914d\u7f6e\u9519\u8bef",generic:"\u53d1\u751f\u9519\u8bef\u3002\u8bf7\u68c0\u67e5\u65e5\u5386\u8bbe\u7f6e\u6216\u5c1d\u8bd5\u5237\u65b0\u65e5\u5386\u3002",notSignedIn:"\u67e5\u770b\u65e5\u5386\u4e8b\u4ef6\u9a8c\u8bc1\u51fa\u9519\u3002\u8bf7\u68c0\u67e5\u65e5\u5386\u8bbe\u7f6e\uff0c\u7136\u540e\u518d\u6b21\u5c1d\u8bd5\u767b\u5f55\u3002"},join:"\u52a0\u5165",joinTooltip:"\u52a0\u5165\u4f1a\u8bae",nextMeeting:"\u4e0b\u4e00\u573a\u4f1a\u8bae",noEvents:"\u8fd1\u671f\u65e0\u6d3b\u52a8\u3002",ongoingMeeting:"\u6b63\u5728\u8fdb\u884c\u7684\u4f1a\u8bae",permissionButton:"\u8bbe\u7f6e",permissionMessage:"\u5728\u5e94\u7528\u4e2d\u67e5\u770b\u4f1a\u8bae\u9700\u8981\u65e5\u5386\u6743\u9650\u3002",refresh:"\u5237\u65b0\u65e5\u5386",today:"\u4eca\u65e5"},chat:{error:"\u9519\u8bef\uff1a\u6d88\u606f\u672a\u53d1\u9001\u3002\u539f\u56e0\uff1a{{error}}",fieldPlaceHolder:"\u5728\u8fd9\u91cc\u8f93\u5165\u4f60\u7684\u4fe1\u606f",messagebox:"\u8f93\u5165\u6d88\u606f",messageTo:"\u4e0e {{recipient}} \u7684\u79c1\u4eba\u804a\u5929",noMessagesMessage:"\u4f1a\u8bae\u4e2d\u8fd8\u6ca1\u6709\u6d88\u606f\uff0c\u5728\u8fd9\u91cc\u5f00\u59cb\u8c08\u8bdd\u5427\uff01",nickname:{popover:"\u9009\u62e9\u4e00\u4e2a\u6635\u79f0",title:"\u8f93\u5165\u4e00\u4e2a\u6635\u79f0\u7528\u4e8e\u804a\u5929"},privateNotice:"\u4e0e {{recipient}} \u7684\u79c1\u4eba\u804a\u5929",title:"\u8bdd\u9898",you:"\u60a8"},chromeExtensionBanner:{installExtensionText:"",buttonText:"",dontShowAgain:""},connectingOverlay:{joiningRoom:"\u4f1a\u8bae\u8fde\u63a5\u4e2d\u2026"},connection:{ATTACHED:"\u5df2\u63a5\u5165",AUTHENTICATING:"\u8ba4\u8bc1\u4e2d",AUTHFAIL:"\u8ba4\u8bc1\u5931\u8d25",CONNECTED:"\u8fde\u63a5\u4e2d\u2026",CONNECTING:"\u8fde\u63a5\u4e2d",CONNFAIL:"\u8fde\u63a5\u5931\u8d25",DISCONNECTED:"\u5df2\u65ad\u5f00\u8fde\u63a5",DISCONNECTING:"\u65ad\u5f00\u8fde\u63a5\u4e2d",ERROR:"\u9519\u8bef",RECONNECTING:"\u7f51\u7edc\u9519\u8bef\uff0c\u91cd\u8fde\u4e2d\u3002\u3002\u3002"},connectionindicator:{address:"\u5730\u5740\uff1a",bandwidth:"\u4f30\u8ba1\u5e26\u5bbd\uff1a",bitrate:"\u6bd4\u7279\u7387\uff1a",bridgeCount:"\u670d\u52a1\u5668\u6570\u91cf:",connectedTo:"\u8fde\u63a5\u5230:",framerate:"\u5e27\u7387\uff1a",less:"\u663e\u793a\u66f4\u5c11",localaddress:"\u672c\u5730\u5730\u5740\uff1a",localport:"\u672c\u5730\u7aef\u53e3\uff1a",more:"\u663e\u793a\u66f4\u591a",packetloss:"\u4e22\u5305\uff1a",quality:{good:"\u597d",inactive:"\u672a\u6fc0\u6d3b",lost:"\u6389\u7ebf",nonoptimal:"\u4e2d",poor:"\u5dee"},remoteaddress:"\u8fdc\u7a0b\u5730\u5740\uff1a",remoteport:"\u8fdc\u7a0b\u7aef\u53e3\uff1a",resolution:"\u5206\u8fa8\u7387\uff1a",status:"\u8fde\u63a5\uff1a",transport:"\u4f20\u8f93\uff1a"},dateUtils:{earlier:"\u66f4\u65e9\u7684",today:"\u4eca\u65e5",yesterday:"\u6628\u5929"},deepLinking:{a
__d(function(e,r,t,f,h,n,o){h.exports={en:"\u82f1\u8a9e",af:"\u5357\u975e\u8377\u862d\u6587",bg:"\u4fdd\u52a0\u5229\u4e9e\u6587",ca:"\u5361\u9054\u9686\u5c3c\u4e9e\u6587",cs:"\u6377\u514b\u6587",de:"\u5fb7\u6587",el:"\u5e0c\u81d8\u6587",enGB:"\u82f1\u6587 (\u82f1\u570b)",eo:"\u4e16\u754c\u8a9e",es:"\u897f\u73ed\u7259\u6587",esUS:"\u897f\u73ed\u7259\u6587 (\u62c9\u4e01\u7f8e\u6d32)",fi:"\u82ac\u862d\u6587",fr:"\u6cd5\u6587",frCA:"\u6cd5\u6587 (\u52a0\u62ff\u5927)",hr:"\u514b\u7f85\u57c3\u897f\u4e9e\u6587",hu:"\u5308\u7259\u5229\u6587",hy:"\u4e9e\u7f8e\u5c3c\u4e9e\u6587",it:"\u7fa9\u5927\u5229\u6587",ja:"\u65e5\u8a9e",ko:"\u97d3\u6587",nl:"\u8377\u862d\u6587",oc:"\u5967\u897f\u5766\u6587",pl:"\u6ce2\u862d\u6587",ptBR:"\u8461\u8404\u7259\u6587 (\u5df4\u897f)",ru:"\u4fc4\u6587",sv:"\u745e\u5178\u6587",tr:"\u571f\u8033\u5176\u6587",vi:"\u8d8a\u5357\u6587",zhCN:"\u4e2d\u6587 (\u4e2d\u56fd\uff0c\u7b80\u4f53)",zhTW:"\u4e2d\u6587 (\u53f0\u7063\uff0c\u6b63\u9ad4)",et:"\u611b\u6c99\u5c3c\u4e9e\u6587",da:"\u4e39\u9ea5\u6587"}},820,[]);
__d(function(e,o,i,r,t,n,a){t.exports={addPeople:{add:"\u9080\u8acb",countryNotSupported:"\u6b64\u76ee\u6a19\u5340\u57df\u5c1a\u672a\u652f\u63f4\u3002",countryReminder:"\u5617\u8a66\u64a5\u6253\u5230\u7f8e\u570b\u4ee5\u5916\u7684\u5730\u5340\u55ce\uff1f\u8acb\u78ba\u8a8d\u5728\u958b\u982d\u52a0\u5165\u570b\u5bb6\u4ee3\u78bc\uff01",disabled:"\u60a8\u4e0d\u53ef\u4ee5\u9080\u8acb\u4eba\u54e1\u3002",failedToAdd:"\u589e\u52a0\u53c3\u8207\u4eba\u5931\u6557",footerText:"\u5c0d\u5916\u64ad\u865f\u5df2\u505c\u7528\u3002",loading:"\u5c0b\u627e\u806f\u7d61\u4eba\u53ca\u96fb\u8a71\u865f\u78bc",loadingNumber:"\u9a57\u8b49\u96fb\u8a71\u865f\u78bc",loadingPeople:"\u6b63\u5728\u641c\u5c0b\u9080\u8acb\u7684\u4eba\u54e1",noResults:"\u6c92\u6709\u7b26\u5408\u8981\u6c42\u7684\u641c\u5c0b\u7d50\u679c",noValidNumbers:"\u8acb\u8f38\u5165\u4e00\u7d44\u96fb\u8a71\u865f\u78bc",searchNumbers:"\u65b0\u589e\u96fb\u8a71\u865f\u78bc",searchPeople:"\u5c0b\u627e\u4eba\u54e1",searchPeopleAndNumbers:"\u5c0b\u627e\u4eba\u54e1\u6216\u65b0\u589e\u96fb\u8a71\u865f\u78bc",telephone:"\u96fb\u8a71\uff1a {{number}}",title:"\u9080\u8acb\u4eba\u54e1\u53c3\u52a0\u6703\u8b70"},audioDevices:{bluetooth:"\u85cd\u7259",headphones:"\u8033\u6a5f",phone:"\u96fb\u8a71",speaker:"\u767c\u8a00\u8005",none:"\u6c92\u6709\u53ef\u7528\u7684\u97f3\u6548\u88dd\u7f6e"},audioOnly:{audioOnly:"\u4f4e\u983b\u5bec"},calendarSync:{addMeetingURL:"\u589e\u52a0\u6703\u8b70\u9023\u7d50",confirmAddLink:"\u60a8\u8981\u52a0\u4e0a Jitsi \u9023\u7d50\u65bc\u6b64\u4e8b\u4ef6\u55ce\uff1f",error:{appConfiguration:"\u884c\u4e8b\u66c6\u6574\u5408\u5c1a\u672a\u6b63\u78ba\u8a2d\u5b9a\u3002",generic:"\u767c\u751f\u932f\u8aa4\u3002\u8acb\u6aa2\u67e5\u884c\u4e8b\u66c6\u8a2d\u5b9a\uff0c\u6216\u662f\u91cd\u65b0\u6574\u7406\u884c\u4e8b\u66c6\u3002",notSignedIn:"\u67e5\u770b\u884c\u4e8b\u66c6\u4e8b\u4ef6\u9032\u884c\u8a8d\u8b49\u6642\u767c\u751f\u932f\u8aa4\u3002\u8acb\u6aa2\u67e5\u60a8\u7684\u884c\u4e8b\u66c6\u8a2d\u5b9a\uff0c\u4e26\u518d\u6b21\u767b\u5165\u3002"},join:"\u53c3\u52a0",joinTooltip:"\u53c3\u52a0\u6703\u8b70",nextMeeting:"\u4e0b\u4e00\u500b\u6703\u8b70",noEvents:"\u5df2\u7d93\u6c92\u6709\u6392\u7a0b\u7684\u4e8b\u4ef6\u3002",ongoingMeeting:"\u6b63\u5728\u9032\u884c\u7684\u6703\u8b70",permissionButton:"\u958b\u555f\u8a2d\u5b9a",permissionMessage:"\u5fc5\u9808\u5148\u53d6\u5f97\u884c\u4e8b\u66c6\u7684\u5b58\u53d6\u6b0a\u9650\u624d\u80fd\u67e5\u770b\u60a8\u61c9\u7528\u7a0b\u5f0f\u4e2d\u7684\u6703\u8b70\u3002",refresh:"\u91cd\u65b0\u6574\u7406\u884c\u4e8b\u66c6",today:"\u4eca\u65e5"},chat:{error:"\u932f\u8aa4\uff1a\u60a8\u7684\u8a0a\u606f\u672a\u88ab\u50b3\u9001\u3002\u539f\u56e0\uff1a {{error}}",fieldPlaceHolder:"\u5728\u6b64\u8f38\u5165\u60a8\u7684\u8a0a\u606f",messagebox:"\u8f38\u5165\u8a0a\u606f",messageTo:"\u79c1\u4eba\u8a0a\u606f\u50b3\u9001\u81f3 {{recipient}}",noMessagesMessage:"\u6b64\u6703\u8b70\u5c1a\u7121\u8a0a\u606f\u3002\u5728\u6b64\u958b\u59cb\u5c0d\u8a71\u4ea4\u8ac7\uff01",nickname:{popover:"\u9078\u64c7\u540d\u7a31",title:"\u8f38\u5165\u540d\u7a31\u4f86\u4f7f\u7528\u4ea4\u8ac7"},privateNotice:"\u79c1\u4eba\u8a0a\u606f\u50b3\u9001\u81f3 {{recipient}}",title:"\u4ea4\u8ac7",you:"\u81ea\u5df1"},connectingOverlay:{joiningRoom:"\u5c07\u81ea\u5df1\u9023\u63a5\u81f3\u81ea\u8a02\u6703\u8b70..."},connection:{ATTACHED:"\u5df2\u7d93\u9644\u52a0",AUTHENTICATING:"\u8a8d\u8b49\u4e2d",AUTHFAIL:"\u8a8d\u8b49\u5931\u6557",CONNECTED:"\u5df2\u7d93\u9023\u63a5",CONNECTING:"\u9023\u63a5\u4e2d",CONNFAIL:"\u9023\u63a5\u5931\u6557",DISCONNECTED:"\u5df2\u7d93\u4e2d\u65b7\u9023\u63a5",DISCONNECTING:"\u4e2d\u65b7\u9023\u63a5\u4e2d",ERROR:"\u932f\u8aa4",RECONNECTING:"\u7db2\u8def\u767c\u751f\u554f\u984c\u3002\u91cd\u65b0\u9023\u7dda\u4e2d.........",GOT_SESSION_ID:"\u6b63\u5728\u53d6\u5f97 session-id\u2026 \u5b8c\u6210",GET_SESSION_ID_ERROR:"\u53d6\u5f97 session-id \u6642\u767c\u751f\u932f\u8aa4\uff1a{{code}}",FETCH_SESSION_ID:"\u6b63\u5728\u53d6\u5f97 session-id\u2026",LOW_BANDWIDTH:"\u5df2\u95dc\u9589 {{displayName}} \u7684\u5f71\u7247\u4ee5\u7bc0\u7701\u6d41\u91cf"},connectionindicator:{address:"\u4f4d\u5740\uff1
__d(function(n,a,i,e,s,h,r){s.exports={en:"English",af:"Afrikaans",bg:"Bulgarian",ca:"Catalan",cs:"Czech",da:"Danish",de:"German",el:"Greek",enGB:"English (United Kingdom)",eo:"Esperanto",es:"Spanish",esUS:"Spanish (Latin America)",et:"Estonian",fi:"Finnish",fr:"French",frCA:"French (Canadian)",hr:"Croatian",hu:"Hungarian",hy:"Armenian",it:"Italian",ja:"Japanese",ko:"Korean",nl:"Dutch",oc:"Occitan",pl:"Polish",ptBR:"Portuguese (Brazil)",ru:"Russian",sv:"Swedish",tr:"Turkish",vi:"Vietnamese",zhCN:"Chinese (China)",zhTW:"Chinese (Taiwan)",mn:"\u041c\u043e\u043d\u0433\u043e\u043b"}},822,[]);
__d(function(e,o,i,t,r,n,a){r.exports={addPeople:{add:"\u0423\u0440\u0438\u0445",countryNotSupported:"\u0422\u0430\u043d\u0430\u0439 \u0443\u043b\u0441\u044b\u0433 \u0445\u0430\u0440\u0430\u0430\u0445\u0430\u043d \u0434\u044d\u043c\u0436\u0438\u0445\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",countryReminder:"\u0410\u041d\u0423-\u0430\u0430\u0441 \u04e9\u04e9\u0440 \u0443\u043b\u0441\u0440\u0443\u0443 \u0437\u0430\u043b\u0433\u0430\u0445 \u0431\u043e\u043b \u0443\u043b\u0441\u044b\u043d \u043a\u043e\u0434\u043e\u043e \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443!",disabled:"\u0425\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0443\u0440\u0438\u0445 \u0431\u043e\u043b\u043e\u043c\u0436\u0433\u04af\u0439.",failedToAdd:"\u041e\u0440\u043e\u043b\u0446\u043e\u0433\u0447 \u043d\u044d\u043c\u0436 \u0447\u0430\u0434\u0441\u0430\u043d\u0433\u04af\u0439",footerText:"\u0414\u0443\u0443\u0434\u043b\u0430\u0433\u0430 \u0445\u0438\u0439\u0445 \u0438\u0434\u044d\u0432\u0445\u0433\u04af\u0439.",loading:"\u0425\u04af\u043c\u04af\u04af\u0441 \u0431\u043e\u043b\u043e\u043d \u0443\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u044b\u0433 \u0445\u0430\u0439\u0436 \u0431\u0430\u0439\u043d\u0430",loadingNumber:"\u0423\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u044b\u0433 \u0431\u0430\u0442\u0430\u043b\u0433\u0430\u0430\u0436\u0443\u0443\u043b\u0436 \u0431\u0430\u0439\u043d\u0430",loadingPeople:"\u0423\u0440\u0438\u0445 \u0445\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0445\u0430\u0439\u0436 \u0431\u0430\u0439\u043d\u0430",noResults:"\u04ae\u0440 \u0434\u04af\u043d \u043e\u043b\u0434\u0441\u043e\u043d\u0433\u04af\u0439",noValidNumbers:"\u0423\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440\u0430\u0430 \u043e\u0440\u0443\u0443\u043b\u043d\u0430 \u0443\u0443",searchNumbers:"\u0423\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440 \u043d\u044d\u043c\u044d\u0445",searchPeople:"\u0425\u04af\u043c\u04af\u04af\u0441 \u0445\u0430\u0439\u0445",searchPeopleAndNumbers:"\u0425\u04af\u043c\u04af\u04af\u0441\u044d\u044d\u0441 \u0445\u0430\u0439\u0445 \u044d\u0441\u0432\u044d\u043b \u0443\u0442\u0430\u0441\u043d\u044b \u0434\u0443\u0433\u0430\u0430\u0440 \u043d\u044d\u043c\u043d\u044d \u04af\u04af",telephone:"\u0423\u0442\u0430\u0441: {{number}}",title:"\u0425\u04af\u043c\u04af\u04af\u0441\u0438\u0439\u0433 \u0445\u0443\u0440\u0430\u043b\u0434 \u0443\u0440\u0438\u0445"},audioDevices:{bluetooth:"Bluetooth",headphones:"\u0427\u0438\u0445\u044d\u0432\u0447",phone:"\u0423\u0442\u0430\u0441",speaker:"\u042f\u0440\u0438\u0433\u0447",none:"\u0414\u0443\u0443\u043d\u044b \u0442\u04e9\u0445\u04e9\u04e9\u0440\u04e9\u043c\u0436 \u0431\u0430\u0439\u0445\u0433\u04af\u0439"},audioOnly:{audioOnly:"\u0427\u0430\u043d\u0430\u0440 \u0431\u0430\u0433\u0430\u0441\u0433\u0430\u0445"},calendarSync:{addMeetingURL:"\u0425\u0443\u0440\u043b\u044b\u043d \u0445\u043e\u043b\u0431\u043e\u043e\u0441\u044b\u0433 \u043d\u044d\u043c\u043d\u044d \u04af\u04af",confirmAddLink:"\u0422\u0430 \u044d\u043d\u044d \u04af\u0439\u043b \u044f\u0432\u0434\u0430\u043b\u0434 \u0445\u043e\u043b\u0431\u043e\u043e\u0441\u044b\u0433 \u043d\u044d\u043c\u044d\u0445\u0438\u0439\u0433 \u0445\u04af\u0441\u0447 \u0431\u0430\u0439\u043d\u0430 \u0443\u0443?",error:{appConfiguration:"\u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u044b\u043d \u0445\u043e\u043b\u0431\u043e\u043b\u0442\u044b\u0433 \u0437\u04e9\u0432 \u0442\u043e\u0445\u0438\u0440\u0443\u0443\u043b\u0430\u0430\u0433\u04af\u0439 \u0431\u0430\u0439\u043d\u0430.",generic:"\u0410\u043b\u0434\u0430\u0430 \u0433\u0430\u0440\u0441\u0430\u043d \u0431\u0430\u0439\u043d\u0430. \u0426\u0430\u0433\u0430\u043b\u0431\u0430\u0440\u044b\u043d \u0442\u043e\u0445\u0438\u0440\u0433\u043e\u043e\u0433\u043e\u043e \u0448\u0430\u043b\u0433\u0430\u0445 \u044d\u0441\u0432\u044d\u043b \u0446\u0430\u0433\u0430\u043b\u0431\u0430\u0440 \u0434\u0430\u0445\u0438\u043d \u0430\u0447\u0430\u0430\u043b\u0436 \u04af\u0437\u043d\u044d \u04af\u04af.",notSignedIn:"An error occurred
__d(function(g,r,i,a,m,e,d){!(function(t,n){if('function'==typeof define&&define.amd)define(['moment'],n);else if('object'==typeof e)try{m.exports=n(r(d[0]))}catch(t){m.exports=n}t&&(t.momentDurationFormatSetup=t.moment?n(t.moment):n)})(this,function(t){var n=!1,u=!1,o="escape years months weeks days hours minutes seconds milliseconds general".split(" "),l=[{type:"seconds",targets:[{type:"minutes",value:60},{type:"hours",value:3600},{type:"days",value:86400},{type:"weeks",value:604800},{type:"months",value:2678400},{type:"years",value:31536e3}]},{type:"minutes",targets:[{type:"hours",value:60},{type:"days",value:1440},{type:"weeks",value:10080},{type:"months",value:44640},{type:"years",value:525600}]},{type:"hours",targets:[{type:"days",value:24},{type:"weeks",value:168},{type:"months",value:744},{type:"years",value:8760}]},{type:"days",targets:[{type:"weeks",value:7},{type:"months",value:31},{type:"years",value:365}]},{type:"months",targets:[{type:"years",value:12}]}];function s(t,n){return!(n.length>t.length)&&-1!==t.indexOf(n)}function c(t){for(var n="";t;)n+="0",t-=1;return n}function p(t){for(var n=t.split("").reverse(),u=0,o=!0;o&&u<n.length;)u?"9"===n[u]?n[u]="0":(n[u]=(parseInt(n[u],10)+1).toString(),o=!1):(parseInt(n[u],10)<5&&(o=!1),n[u]="0"),u+=1;return o&&n.push("1"),n.reverse().join("")}function f(t,n,o){var l,s,h,y=n.useToLocaleString,v=n.useGrouping,S=v&&n.grouping.slice(),w=n.maximumSignificantDigits,V=n.minimumIntegerDigits||1,_=n.fractionDigits||0,x=n.groupingSeparator,D=n.decimalSeparator;if(y&&o){var L={minimumIntegerDigits:V,useGrouping:v};if(_&&(L.maximumFractionDigits=_,L.minimumFractionDigits=_),w&&t>0&&(L.maximumSignificantDigits=w),!u){var b=I({},n);b.useGrouping=!1,b.decimalSeparator=".",t=parseFloat(f(t,b),10)}return t.toLocaleString(o,L)}var M=(w?t.toPrecision(w+1):t.toFixed(_+1)).split("e");h=M[1]||"",s=(M=M[0].split("."))[1]||"";var k=(l=M[0]||"").length,T=s.length,F=k+T,j=l+s;(w&&F===w+1||!w&&T===_+1)&&((j=p(j)).length===F+1&&(k+=1),T&&(j=j.slice(0,-1)),l=j.slice(0,k),s=j.slice(k)),w&&(s=s.replace(/0*$/,""));var G=parseInt(h,10);G>0?s.length<=G?(l+=s+=c(G-s.length),s=""):(l+=s.slice(0,G),s=s.slice(G)):G<0&&(s=c(Math.abs(G)-l.length)+l+s,l="0"),w||((s=s.slice(0,_)).length<_&&(s+=c(_-s.length)),l.length<V&&(l=c(V-l.length)+l));var E,P="";if(v)for(M=l;M.length;)S.length&&(E=S.shift()),P&&(P=x+P),P=M.slice(-E)+P,M=M.slice(0,-E);else P=l;return s&&(P=P+D+s),P}function h(t,n){return t.label.length>n.label.length?-1:t.label.length<n.label.length?1:0}function y(t,n){var u=[];return D(j(n),function(o){if("_durationLabels"===o.slice(0,15)){var l=o.slice(15).toLowerCase();D(j(n[o]),function(s){s.slice(0,1)===t&&u.push({type:l,key:s,label:n[o][s]})})}}),u}var v,S={durationLabelsStandard:{S:'millisecond',SS:'milliseconds',s:'second',ss:'seconds',m:'minute',mm:'minutes',h:'hour',hh:'hours',d:'day',dd:'days',w:'week',ww:'weeks',M:'month',MM:'months',y:'year',yy:'years'},durationLabelsShort:{S:'msec',SS:'msecs',s:'sec',ss:'secs',m:'min',mm:'mins',h:'hr',hh:'hrs',d:'dy',dd:'dys',w:'wk',ww:'wks',M:'mo',MM:'mos',y:'yr',yy:'yrs'},durationTimeTemplates:{HMS:'h:mm:ss',HM:'h:mm',MS:'m:ss'},durationLabelTypes:[{type:"standard",string:"__"},{type:"short",string:"_"}],durationPluralKey:function(t,n,u){return 1===n&&null===u?t:t+t}};function w(t){return"[object Array]"===Object.prototype.toString.call(t)}function V(t){return"[object Object]"===Object.prototype.toString.call(t)}function _(t,n){for(var u=t.length;u-=1;)if(n(t[u]))return t[u]}function x(t,n){var u,o=0,l=t&&t.length||0;for("function"!=typeof n&&(u=n,n=function(t){return t===u});o<l;){if(n(t[o]))return t[o];o+=1}}function D(t,n){var u=0,o=t.length;if(t&&o)for(;u<o;){if(!1===n(t[u],u))return;u+=1}}function L(t,n){var u=0,o=t.length,l=[];if(!t||!o)return l;for(;u<o;)l[u]=n(t[u],u),u+=1;return l}function b(t,n){return L(t,function(t){return t[n]})}function M(t){var n=[];return D(t,function(t){t&&n.push(t)}),n}function k(t){var n=[];return D(t,function(t){x(n,t)||n.push(t)}),n}function T(t,n){var u=[];return D(t,function(t){D(n,function(n){t===n&&u.push(t)}
__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('bg',{months:'\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438'.split('_'),monthsShort:'\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a'.split('_'),weekdays:'\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430'.split('_'),weekdaysShort:'\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431'.split('_'),weekdaysMin:'\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'D.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY H:mm',LLLL:'dddd, D MMMM YYYY H:mm'},calendar:{sameDay:'[\u0414\u043d\u0435\u0441 \u0432] LT',nextDay:'[\u0423\u0442\u0440\u0435 \u0432] LT',nextWeek:'dddd [\u0432] LT',lastDay:'[\u0412\u0447\u0435\u0440\u0430 \u0432] LT',lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return'[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT';case 1:case 2:case 4:case 5:return'[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT'}},sameElse:'L'},relativeTime:{future:'\u0441\u043b\u0435\u0434 %s',past:'\u043f\u0440\u0435\u0434\u0438 %s',s:'\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438',m:'\u043c\u0438\u043d\u0443\u0442\u0430',mm:'%d \u043c\u0438\u043d\u0443\u0442\u0438',h:'\u0447\u0430\u0441',hh:'%d \u0447\u0430\u0441\u0430',d:'\u0434\u0435\u043d',dd:'%d \u0434\u043d\u0438',M:'\u043c\u0435\u0441\u0435\u0446',MM:'%d \u043c\u0435\u0441\u0435\u0446\u0430',y:'\u0433\u043e\u0434\u0438\u043d\u0430',yy:'%d \u0433\u043e\u0434\u0438\u043d\u0438'},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(_){var t=_%10,s=_%100;return 0===_?_+'-\u0435\u0432':0===s?_+'-\u0435\u043d':s>10&&s<20?_+'-\u0442\u0438':1===t?_+'-\u0432\u0438':2===t?_+'-\u0440\u0438':7===t||8===t?_+'-\u043c\u0438':_+'-\u0442\u0438'},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},825,[728]);
__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';function t(n,t,_,o){var M={m:['eine Minute','einer Minute'],h:['eine Stunde','einer Stunde'],d:['ein Tag','einem Tag'],dd:[n+' Tage',n+' Tagen'],M:['ein Monat','einem Monat'],MM:[n+' Monate',n+' Monaten'],y:['ein Jahr','einem Jahr'],yy:[n+' Jahre',n+' Jahren']};return t?M[_][0]:M[_][1]}return n.defineLocale('de',{months:'Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),monthsShort:'Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),monthsParseExact:!0,weekdays:'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),weekdaysShort:'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),weekdaysMin:'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY HH:mm',LLLL:'dddd, D. MMMM YYYY HH:mm'},calendar:{sameDay:'[heute um] LT [Uhr]',sameElse:'L',nextDay:'[morgen um] LT [Uhr]',nextWeek:'dddd [um] LT [Uhr]',lastDay:'[gestern um] LT [Uhr]',lastWeek:'[letzten] dddd [um] LT [Uhr]'},relativeTime:{future:'in %s',past:'vor %s',s:'ein paar Sekunden',m:t,mm:'%d Minuten',h:t,hh:'%d Stunden',d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},826,[728]);
__d(function(g,r,i,a,m,e,d){var o,t;o=this,t=function(o){'use strict';return o.defineLocale('eo',{months:'januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro'.split('_'),monthsShort:'jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec'.split('_'),weekdays:'diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato'.split('_'),weekdaysShort:'dim_lun_mard_merk_\u0135a\u016d_ven_sab'.split('_'),weekdaysMin:'di_lu_ma_me_\u0135a_ve_sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY-MM-DD',LL:'D[-a de] MMMM, YYYY',LLL:'D[-a de] MMMM, YYYY HH:mm',LLLL:'dddd, [la] D[-a de] MMMM, YYYY HH:mm'},meridiemParse:/[ap]\.t\.m/i,isPM:function(o){return'p'===o.charAt(0).toLowerCase()},meridiem:function(o,t,n){return o>11?n?'p.t.m.':'P.T.M.':n?'a.t.m.':'A.T.M.'},calendar:{sameDay:'[Hodia\u016d je] LT',nextDay:'[Morga\u016d je] LT',nextWeek:'dddd [je] LT',lastDay:'[Hiera\u016d je] LT',lastWeek:'[pasinta] dddd [je] LT',sameElse:'L'},relativeTime:{future:'post %s',past:'anta\u016d %s',s:'sekundoj',m:'minuto',mm:'%d minutoj',h:'horo',hh:'%d horoj',d:'tago',dd:'%d tagoj',M:'monato',MM:'%d monatoj',y:'jaro',yy:'%d jaroj'},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:'%da',week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(o.moment)},827,[728]);
__d(function(g,r,i,a,m,e,d){var o,n;o=this,n=function(o){'use strict';var n='ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),t='ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),s=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],u=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return o.defineLocale('es',{months:'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),monthsShort:function(o,s){return o?/-MMM-/.test(s)?t[o.month()]:n[o.month()]:n},monthsRegex:u,monthsShortRegex:u,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:'domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado'.split('_'),weekdaysShort:'dom._lun._mar._mi\xe9._jue._vie._s\xe1b.'.split('_'),weekdaysMin:'do_lu_ma_mi_ju_vi_s\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY H:mm',LLLL:'dddd, D [de] MMMM [de] YYYY H:mm'},calendar:{sameDay:function(){return'[hoy a la'+(1!==this.hours()?'s':'')+'] LT'},nextDay:function(){return'[ma\xf1ana a la'+(1!==this.hours()?'s':'')+'] LT'},nextWeek:function(){return'dddd [a la'+(1!==this.hours()?'s':'')+'] LT'},lastDay:function(){return'[ayer a la'+(1!==this.hours()?'s':'')+'] LT'},lastWeek:function(){return'[el] dddd [pasado a la'+(1!==this.hours()?'s':'')+'] LT'},sameElse:'L'},relativeTime:{future:'en %s',past:'hace %s',s:'unos segundos',m:'un minuto',mm:'%d minutos',h:'una hora',hh:'%d horas',d:'un d\xeda',dd:'%d d\xedas',M:'un mes',MM:'%d meses',y:'un a\xf1o',yy:'%d a\xf1os'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(o.moment)},828,[728]);
__d(function(g,r,i,a,m,e,d){var n,s;n=this,s=function(n){'use strict';return n.defineLocale('fr',{months:'janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre'.split('_'),monthsShort:'janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.'.split('_'),monthsParseExact:!0,weekdays:'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),weekdaysShort:'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),weekdaysMin:'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd D MMMM YYYY HH:mm'},calendar:{sameDay:'[Aujourd\u2019hui \xe0] LT',nextDay:'[Demain \xe0] LT',nextWeek:'dddd [\xe0] LT',lastDay:'[Hier \xe0] LT',lastWeek:'dddd [dernier \xe0] LT',sameElse:'L'},relativeTime:{future:'dans %s',past:'il y a %s',s:'quelques secondes',m:'une minute',mm:'%d minutes',h:'une heure',hh:'%d heures',d:'un jour',dd:'%d jours',M:'un mois',MM:'%d mois',y:'un an',yy:'%d ans'},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(n,s){switch(s){case'D':return n+(1===n?'er':'');default:case'M':case'Q':case'DDD':case'd':return n+(1===n?'er':'e');case'w':case'W':return n+(1===n?'re':'e')}},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?s(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],s):s(n.moment)},829,[728]);
__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('hy-am',{months:{format:'\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b'.split('_'),standalone:'\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580'.split('_')},monthsShort:'\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f'.split('_'),weekdays:'\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569'.split('_'),weekdaysShort:'\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split('_'),weekdaysMin:'\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY \u0569.',LLL:'D MMMM YYYY \u0569., HH:mm',LLLL:'dddd, D MMMM YYYY \u0569., HH:mm'},calendar:{sameDay:'[\u0561\u0575\u057d\u0585\u0580] LT',nextDay:'[\u057e\u0561\u0572\u0568] LT',lastDay:'[\u0565\u0580\u0565\u056f] LT',nextWeek:function(){return'dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'},lastWeek:function(){return'[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT'},sameElse:'L'},relativeTime:{future:'%s \u0570\u0565\u057f\u0578',past:'%s \u0561\u057c\u0561\u057b',s:'\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576',m:'\u0580\u0578\u057a\u0565',mm:'%d \u0580\u0578\u057a\u0565',h:'\u056a\u0561\u0574',hh:'%d \u056a\u0561\u0574',d:'\u0585\u0580',dd:'%d \u0585\u0580',M:'\u0561\u0574\u056b\u057d',MM:'%d \u0561\u0574\u056b\u057d',y:'\u057f\u0561\u0580\u056b',yy:'%d \u057f\u0561\u0580\u056b'},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(_){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(_)},meridiem:function(_){return _<4?'\u0563\u056b\u0577\u0565\u0580\u057e\u0561':_<12?'\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561':_<17?'\u0581\u0565\u0580\u0565\u056f\u057e\u0561':'\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576'},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(_,t){switch(t){case'DDD':case'w':case'W':case'DDDo':return 1===_?_+'-\u056b\u0576':_+'-\u0580\u0564';default:return _}},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},830,[728]);
__d(function(g,r,i,a,m,e,d){var n,o;n=this,o=function(n){'use strict';return n.defineLocale('it',{months:'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),monthsShort:'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),weekdays:'domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato'.split('_'),weekdaysShort:'dom_lun_mar_mer_gio_ven_sab'.split('_'),weekdaysMin:'do_lu_ma_me_gi_ve_sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Oggi alle] LT',nextDay:'[Domani alle] LT',nextWeek:'dddd [alle] LT',lastDay:'[Ieri alle] LT',lastWeek:function(){switch(this.day()){case 0:return'[la scorsa] dddd [alle] LT';default:return'[lo scorso] dddd [alle] LT'}},sameElse:'L'},relativeTime:{future:function(n){return(/^[0-9].+$/.test(n)?'tra':'in')+' '+n},past:'%s fa',s:'alcuni secondi',m:'un minuto',mm:'%d minuti',h:'un\'ora',hh:'%d ore',d:'un giorno',dd:'%d giorni',M:'un mese',MM:'%d mesi',y:'un anno',yy:'%d anni'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?o(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],o):o(n.moment)},831,[728]);
__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';return t.defineLocale('nb',{months:'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),monthsShort:'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),monthsParseExact:!0,weekdays:'s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag'.split('_'),weekdaysShort:'s\xf8._ma._ti._on._to._fr._l\xf8.'.split('_'),weekdaysMin:'s\xf8_ma_ti_on_to_fr_l\xf8'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY [kl.] HH:mm',LLLL:'dddd D. MMMM YYYY [kl.] HH:mm'},calendar:{sameDay:'[i dag kl.] LT',nextDay:'[i morgen kl.] LT',nextWeek:'dddd [kl.] LT',lastDay:'[i g\xe5r kl.] LT',lastWeek:'[forrige] dddd [kl.] LT',sameElse:'L'},relativeTime:{future:'om %s',past:'%s siden',s:'noen sekunder',m:'ett minutt',mm:'%d minutter',h:'en time',hh:'%d timer',d:'en dag',dd:'%d dager',M:'en m\xe5ned',MM:'%d m\xe5neder',y:'ett \xe5r',yy:'%d \xe5r'},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},832,[728]);
__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';var n='stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144'.split('_'),o='stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia'.split('_');function s(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function _(t,n,o){var _=t+' ';switch(o){case'm':return n?'minuta':'minut\u0119';case'mm':return _+(s(t)?'minuty':'minut');case'h':return n?'godzina':'godzin\u0119';case'hh':return _+(s(t)?'godziny':'godzin');case'MM':return _+(s(t)?'miesi\u0105ce':'miesi\u0119cy');case'yy':return _+(s(t)?'lata':'lat')}}return t.defineLocale('pl',{months:function(t,s){return t?''===s?'('+o[t.month()]+'|'+n[t.month()]+')':/D MMMM/.test(s)?o[t.month()]:n[t.month()]:n},monthsShort:'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru'.split('_'),weekdays:'niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota'.split('_'),weekdaysShort:'ndz_pon_wt_\u015br_czw_pt_sob'.split('_'),weekdaysMin:'Nd_Pn_Wt_\u015ar_Cz_Pt_So'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Dzi\u015b o] LT',nextDay:'[Jutro o] LT',nextWeek:function(){switch(this.day()){case 0:return'[W niedziel\u0119 o] LT';case 2:return'[We wtorek o] LT';case 3:return'[W \u015brod\u0119 o] LT';case 6:return'[W sobot\u0119 o] LT';default:return'[W] dddd [o] LT'}},lastDay:'[Wczoraj o] LT',lastWeek:function(){switch(this.day()){case 0:return'[W zesz\u0142\u0105 niedziel\u0119 o] LT';case 3:return'[W zesz\u0142\u0105 \u015brod\u0119 o] LT';case 6:return'[W zesz\u0142\u0105 sobot\u0119 o] LT';default:return'[W zesz\u0142y] dddd [o] LT'}},sameElse:'L'},relativeTime:{future:'za %s',past:'%s temu',s:'kilka sekund',m:_,mm:_,h:_,hh:_,d:'1 dzie\u0144',dd:'%d dni',M:'miesi\u0105c',MM:_,y:'rok',yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},833,[728]);
__d(function(g,r,i,a,m,e,d){var o,t;o=this,t=function(o){'use strict';return o.defineLocale('pt',{months:'janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),monthsShort:'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),weekdays:'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split('_'),weekdaysShort:'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),weekdaysMin:'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY HH:mm',LLLL:'dddd, D [de] MMMM [de] YYYY HH:mm'},calendar:{sameDay:'[Hoje \xe0s] LT',nextDay:'[Amanh\xe3 \xe0s] LT',nextWeek:'dddd [\xe0s] LT',lastDay:'[Ontem \xe0s] LT',lastWeek:function(){return 0===this.day()||6===this.day()?'[\xdaltimo] dddd [\xe0s] LT':'[\xdaltima] dddd [\xe0s] LT'},sameElse:'L'},relativeTime:{future:'em %s',past:'h\xe1 %s',s:'segundos',m:'um minuto',mm:'%d minutos',h:'uma hora',hh:'%d horas',d:'um dia',dd:'%d dias',M:'um m\xeas',MM:'%d meses',y:'um ano',yy:'%d anos'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(o.moment)},834,[728]);
__d(function(g,r,i,a,m,e,d){var o,s;o=this,s=function(o){'use strict';return o.defineLocale('pt-br',{months:'janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),monthsShort:'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),weekdays:'Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado'.split('_'),weekdaysShort:'Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b'.split('_'),weekdaysMin:'Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D [de] MMMM [de] YYYY',LLL:'D [de] MMMM [de] YYYY [\xe0s] HH:mm',LLLL:'dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm'},calendar:{sameDay:'[Hoje \xe0s] LT',nextDay:'[Amanh\xe3 \xe0s] LT',nextWeek:'dddd [\xe0s] LT',lastDay:'[Ontem \xe0s] LT',lastWeek:function(){return 0===this.day()||6===this.day()?'[\xdaltimo] dddd [\xe0s] LT':'[\xdaltima] dddd [\xe0s] LT'},sameElse:'L'},relativeTime:{future:'em %s',past:'%s atr\xe1s',s:'poucos segundos',ss:'%d segundos',m:'um minuto',mm:'%d minutos',h:'uma hora',hh:'%d horas',d:'um dia',dd:'%d dias',M:'um m\xeas',MM:'%d meses',y:'um ano',yy:'%d anos'},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:'%d\xba'})},'object'==typeof e&&void 0!==m&&'function'==typeof r?s(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],s):s(o.moment)},835,[728]);
__d(function(g,r,i,a,m,e,d){var t,_;t=this,_=function(t){'use strict';function _(t,_,s){var n,o;return'm'===s?_?'\u043c\u0438\u043d\u0443\u0442\u0430':'\u043c\u0438\u043d\u0443\u0442\u0443':t+' '+(n=+t,o={mm:_?'\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442':'\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442',hh:'\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432',dd:'\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439',MM:'\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432',yy:'\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442'}[s].split('_'),n%10==1&&n%100!=11?o[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?o[1]:o[2])}var s=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];return t.defineLocale('ru',{months:{format:'\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f'.split('_'),standalone:'\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c'.split('_')},monthsShort:{format:'\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split('_'),standalone:'\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.'.split('_')},weekdays:{standalone:'\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430'.split('_'),format:'\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443'.split('_'),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:'\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),weekdaysMin:'\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431'.split('_'),monthsParse:s,longMonthsParse:s,shortMonthsParse:s,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u04
__d(function(g,r,i,a,m,e,d){var t,n;t=this,n=function(t){'use strict';var n='janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december'.split('_'),o='jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec'.split('_');function s(t){return t>1&&t<5}function u(t,n,o,u){var c=t+' ';switch(o){case's':return n||u?'p\xe1r sek\xfand':'p\xe1r sekundami';case'm':return n?'min\xfata':u?'min\xfatu':'min\xfatou';case'mm':return n||u?c+(s(t)?'min\xfaty':'min\xfat'):c+'min\xfatami';case'h':return n?'hodina':u?'hodinu':'hodinou';case'hh':return n||u?c+(s(t)?'hodiny':'hod\xedn'):c+'hodinami';case'd':return n||u?'de\u0148':'d\u0148om';case'dd':return n||u?c+(s(t)?'dni':'dn\xed'):c+'d\u0148ami';case'M':return n||u?'mesiac':'mesiacom';case'MM':return n||u?c+(s(t)?'mesiace':'mesiacov'):c+'mesiacmi';case'y':return n||u?'rok':'rokom';case'yy':return n||u?c+(s(t)?'roky':'rokov'):c+'rokmi'}}return t.defineLocale('sk',{months:n,monthsShort:o,weekdays:'nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota'.split('_'),weekdaysShort:'ne_po_ut_st_\u0161t_pi_so'.split('_'),weekdaysMin:'ne_po_ut_st_\u0161t_pi_so'.split('_'),longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY H:mm',LLLL:'dddd D. MMMM YYYY H:mm'},calendar:{sameDay:'[dnes o] LT',nextDay:'[zajtra o] LT',nextWeek:function(){switch(this.day()){case 0:return'[v nede\u013eu o] LT';case 1:case 2:return'[v] dddd [o] LT';case 3:return'[v stredu o] LT';case 4:return'[vo \u0161tvrtok o] LT';case 5:return'[v piatok o] LT';case 6:return'[v sobotu o] LT'}},lastDay:'[v\u010dera o] LT',lastWeek:function(){switch(this.day()){case 0:return'[minul\xfa nede\u013eu o] LT';case 1:case 2:return'[minul\xfd] dddd [o] LT';case 3:return'[minul\xfa stredu o] LT';case 4:case 5:return'[minul\xfd] dddd [o] LT';case 6:return'[minul\xfa sobotu o] LT'}},sameElse:'L'},relativeTime:{future:'za %s',past:'pred %s',s:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?n(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],n):n(t.moment)},837,[728]);
__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';function t(n,t,s,o){var u=n+' ';switch(s){case's':return t||o?'nekaj sekund':'nekaj sekundami';case'm':return t?'ena minuta':'eno minuto';case'mm':return u+=1===n?t?'minuta':'minuto':2===n?t||o?'minuti':'minutama':n<5?t||o?'minute':'minutami':t||o?'minut':'minutami';case'h':return t?'ena ura':'eno uro';case'hh':return u+=1===n?t?'ura':'uro':2===n?t||o?'uri':'urama':n<5?t||o?'ure':'urami':t||o?'ur':'urami';case'd':return t||o?'en dan':'enim dnem';case'dd':return u+=1===n?t||o?'dan':'dnem':2===n?t||o?'dni':'dnevoma':t||o?'dni':'dnevi';case'M':return t||o?'en mesec':'enim mesecem';case'MM':return u+=1===n?t||o?'mesec':'mesecem':2===n?t||o?'meseca':'mesecema':n<5?t||o?'mesece':'meseci':t||o?'mesecev':'meseci';case'y':return t||o?'eno leto':'enim letom';case'yy':return u+=1===n?t||o?'leto':'letom':2===n?t||o?'leti':'letoma':n<5?t||o?'leta':'leti':t||o?'let':'leti'}}return n.defineLocale('sl',{months:'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),monthsShort:'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),monthsParseExact:!0,weekdays:'nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota'.split('_'),weekdaysShort:'ned._pon._tor._sre._\u010det._pet._sob.'.split('_'),weekdaysMin:'ne_po_to_sr_\u010de_pe_so'.split('_'),weekdaysParseExact:!0,longDateFormat:{LT:'H:mm',LTS:'H:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY H:mm',LLLL:'dddd, D. MMMM YYYY H:mm'},calendar:{sameDay:'[danes ob] LT',nextDay:'[jutri ob] LT',nextWeek:function(){switch(this.day()){case 0:return'[v] [nedeljo] [ob] LT';case 3:return'[v] [sredo] [ob] LT';case 6:return'[v] [soboto] [ob] LT';case 1:case 2:case 4:case 5:return'[v] dddd [ob] LT'}},lastDay:'[v\u010deraj ob] LT',lastWeek:function(){switch(this.day()){case 0:return'[prej\u0161njo] [nedeljo] [ob] LT';case 3:return'[prej\u0161njo] [sredo] [ob] LT';case 6:return'[prej\u0161njo] [soboto] [ob] LT';case 1:case 2:case 4:case 5:return'[prej\u0161nji] dddd [ob] LT'}},sameElse:'L'},relativeTime:{future:'\u010dez %s',past:'pred %s',s:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},838,[728]);
__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';return n.defineLocale('sv',{months:'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),monthsShort:'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),weekdays:'s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag'.split('_'),weekdaysShort:'s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r'.split('_'),weekdaysMin:'s\xf6_m\xe5_ti_on_to_fr_l\xf6'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY-MM-DD',LL:'D MMMM YYYY',LLL:'D MMMM YYYY [kl.] HH:mm',LLLL:'dddd D MMMM YYYY [kl.] HH:mm',lll:'D MMM YYYY HH:mm',llll:'ddd D MMM YYYY HH:mm'},calendar:{sameDay:'[Idag] LT',nextDay:'[Imorgon] LT',lastDay:'[Ig\xe5r] LT',nextWeek:'[P\xe5] dddd LT',lastWeek:'[I] dddd[s] LT',sameElse:'L'},relativeTime:{future:'om %s',past:'f\xf6r %s sedan',s:'n\xe5gra sekunder',m:'en minut',mm:'%d minuter',h:'en timme',hh:'%d timmar',d:'en dag',dd:'%d dagar',M:'en m\xe5nad',MM:'%d m\xe5nader',y:'ett \xe5r',yy:'%d \xe5r'},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(n){var t=n%10;return n+(1==~~(n%100/10)?'e':1===t?'a':2===t?'a':'e')},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},839,[728]);
__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(n){'use strict';var t={1:'\'inci',5:'\'inci',8:'\'inci',70:'\'inci',80:'\'inci',2:'\'nci',7:'\'nci',20:'\'nci',50:'\'nci',3:'\'\xfcnc\xfc',4:'\'\xfcnc\xfc',100:'\'\xfcnc\xfc',6:'\'nc\u0131',9:'\'uncu',10:'\'uncu',30:'\'uncu',60:'\'\u0131nc\u0131',90:'\'\u0131nc\u0131'};return n.defineLocale('tr',{months:'Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k'.split('_'),monthsShort:'Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara'.split('_'),weekdays:'Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi'.split('_'),weekdaysShort:'Paz_Pts_Sal_\xc7ar_Per_Cum_Cts'.split('_'),weekdaysMin:'Pz_Pt_Sa_\xc7a_Pe_Cu_Ct'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[bug\xfcn saat] LT',nextDay:'[yar\u0131n saat] LT',nextWeek:'[gelecek] dddd [saat] LT',lastDay:'[d\xfcn] LT',lastWeek:'[ge\xe7en] dddd [saat] LT',sameElse:'L'},relativeTime:{future:'%s sonra',past:'%s \xf6nce',s:'birka\xe7 saniye',m:'bir dakika',mm:'%d dakika',h:'bir saat',hh:'%d saat',d:'bir g\xfcn',dd:'%d g\xfcn',M:'bir ay',MM:'%d ay',y:'bir y\u0131l',yy:'%d y\u0131l'},dayOfMonthOrdinalParse:/\d{1,2}'(inci|nci|\xfcnc\xfc|nc\u0131|uncu|\u0131nc\u0131)/,ordinal:function(n){if(0===n)return n+'\'\u0131nc\u0131';var _=n%10;return n+(t[_]||t[n%100-_]||t[n>=100?100:null])},week:{dow:1,doy:7}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(n.moment)},840,[728]);
__d(function(g,r,i,a,m,e,d){var _,t;_=this,t=function(_){'use strict';return _.defineLocale('zh-cn',{months:'\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708'.split('_'),monthsShort:'1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708'.split('_'),weekdays:'\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d'.split('_'),weekdaysShort:'\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d'.split('_'),weekdaysMin:'\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'YYYY\u5e74MMMD\u65e5',LL:'YYYY\u5e74MMMD\u65e5',LLL:'YYYY\u5e74MMMD\u65e5Ah\u70b9mm\u5206',LLLL:'YYYY\u5e74MMMD\u65e5ddddAh\u70b9mm\u5206',l:'YYYY\u5e74MMMD\u65e5',ll:'YYYY\u5e74MMMD\u65e5',lll:'YYYY\u5e74MMMD\u65e5 HH:mm',llll:'YYYY\u5e74MMMD\u65e5dddd HH:mm'},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(_,t){return 12===_&&(_=0),'\u51cc\u6668'===t||'\u65e9\u4e0a'===t||'\u4e0a\u5348'===t?_:'\u4e0b\u5348'===t||'\u665a\u4e0a'===t?_+12:_>=11?_:_+12},meridiem:function(_,t,n){var s=100*_+t;return s<600?'\u51cc\u6668':s<900?'\u65e9\u4e0a':s<1130?'\u4e0a\u5348':s<1230?'\u4e2d\u5348':s<1800?'\u4e0b\u5348':'\u665a\u4e0a'},calendar:{sameDay:'[\u4eca\u5929]LT',nextDay:'[\u660e\u5929]LT',nextWeek:'[\u4e0b]ddddLT',lastDay:'[\u6628\u5929]LT',lastWeek:'[\u4e0a]ddddLT',sameElse:'L'},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(_,t){switch(t){case'd':case'D':case'DDD':return _+'\u65e5';case'M':return _+'\u6708';case'w':case'W':return _+'\u5468';default:return _}},relativeTime:{future:'%s\u5185',past:'%s\u524d',s:'\u51e0\u79d2',m:'1 \u5206\u949f',mm:'%d \u5206\u949f',h:'1 \u5c0f\u65f6',hh:'%d \u5c0f\u65f6',d:'1 \u5929',dd:'%d \u5929',M:'1 \u4e2a\u6708',MM:'%d \u4e2a\u6708',y:'1 \u5e74',yy:'%d \u5e74'},week:{dow:1,doy:4}})},'object'==typeof e&&void 0!==m&&'function'==typeof r?t(r(d[0])):'function'==typeof define&&define.amd?define(['../moment'],t):t(_.moment)},841,[728]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.translate=function(n){return(0,l.withTranslation)(['main','languages','countries'])(n)},e.translateToHTML=function(n,l){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.default.createElement("span",{dangerouslySetInnerHTML:{__html:n(l,u)}})};var t=n(r(d[1])),l=r(d[2])},842,[3,59,843]);
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Trans",{enumerable:!0,get:function(){return t.Trans}}),Object.defineProperty(e,"useTranslation",{enumerable:!0,get:function(){return n.useTranslation}}),Object.defineProperty(e,"withTranslation",{enumerable:!0,get:function(){return u.withTranslation}}),Object.defineProperty(e,"Translation",{enumerable:!0,get:function(){return o.Translation}}),Object.defineProperty(e,"I18nextProvider",{enumerable:!0,get:function(){return c.I18nextProvider}}),Object.defineProperty(e,"withSSR",{enumerable:!0,get:function(){return f.withSSR}}),Object.defineProperty(e,"useSSR",{enumerable:!0,get:function(){return b.useSSR}}),Object.defineProperty(e,"I18nContext",{enumerable:!0,get:function(){return l.I18nContext}}),Object.defineProperty(e,"initReactI18next",{enumerable:!0,get:function(){return l.initReactI18next}}),Object.defineProperty(e,"setDefaults",{enumerable:!0,get:function(){return l.setDefaults}}),Object.defineProperty(e,"getDefaults",{enumerable:!0,get:function(){return l.getDefaults}}),Object.defineProperty(e,"setI18n",{enumerable:!0,get:function(){return l.setI18n}}),Object.defineProperty(e,"getI18n",{enumerable:!0,get:function(){return l.getI18n}}),Object.defineProperty(e,"composeInitialProps",{enumerable:!0,get:function(){return l.composeInitialProps}}),Object.defineProperty(e,"getInitialProps",{enumerable:!0,get:function(){return l.getInitialProps}});var t=r(d[0]),n=r(d[1]),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),l=r(d[7])},843,[844,862,867,868,869,870,871,858]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n=r(d[1]),o=r(d[2]);Object.defineProperty(e,"__esModule",{value:!0}),e.nodesToString=b,e.Trans=function(t){var n=t.children,o=t.count,s=t.parent,p=t.i18nKey,y=t.tOptions,v=t.values,E=t.defaults,O=t.components,k=t.ns,x=t.i18n,S=t.t,N=(0,c.default)(t,["children","count","parent","i18nKey","tOptions","values","defaults","components","ns","i18n","t"]),w=(0,f.getHasUsedI18nextProvider)()&&(0,u.useContext)(f.I18nContext)||{},V=w.i18n,A=w.defaultNS,I=x||V||(0,f.getI18n)();if(!I)return(0,h.warnOnce)('You will need pass in an i18next instance by using i18nextReactModule'),n;var K=S||I.t.bind(I)||function(t){return t},T=(0,l.default)({},(0,f.getDefaults)(),I.options&&I.options.react),H=void 0!==s?s:T.defaultTransParent,_=k||K.ns||A||I.options&&I.options.defaultNS;_='string'==typeof _?[_]:_||['translation'];var B=E||b('',n,0,T)||T.transEmptyNodeValue,P=T.hashTransKey,C=p||(P?P(B):B),D=v?{}:{interpolation:{prefix:'#$?',suffix:'?$#'}},F=(0,l.default)({},y,v,D,{defaultValue:B,count:o,ns:_}),M=C?K(C,F):B;return H?u.default.createElement(H,N,j(O||n,M,I,T,F)):j(O||n,M,I,T,F)};var c=o(r(d[3])),l=o(r(d[4])),s=o(r(d[5])),u=n(r(d[6])),p=o(r(d[7])),f=r(d[8]),h=r(d[9]);function y(t){return t&&(t.children||t.props&&t.props.children)}function v(t){return t?t&&t.children?t.children:t.props&&t.props.children:[]}function b(t,n,o,c){if(!n)return'';'[object Array]'!==Object.prototype.toString.call(n)&&(n=[n]);var p=c.transKeepBasicHtmlNodesFor||[];return n.forEach(function(n,o){var f="".concat(o);if('string'==typeof n)t="".concat(t).concat(n);else if(y(n)){var j=p.indexOf(n.type)>-1&&1===Object.keys(n.props).length&&'string'==typeof y(n)?n.type:f;t=n.props&&n.props.i18nIsDynamicList?"".concat(t,"<").concat(j,"></").concat(j,">"):"".concat(t,"<").concat(j,">").concat(b('',v(n),o+1,c),"</").concat(j,">")}else if(u.default.isValidElement(n))t=p.indexOf(n.type)>-1&&0===Object.keys(n.props).length?"".concat(t,"<").concat(n.type,"/>"):"".concat(t,"<").concat(f,"></").concat(f,">");else if('object'===(0,s.default)(n)){var E=(0,l.default)({},n),O=E.format;delete E.format;var k=Object.keys(E);O&&1===k.length?t="".concat(t,"{{").concat(k[0],", ").concat(O,"}}"):1===k.length?t="".concat(t,"{{").concat(k[0],"}}"):(0,h.warn)("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.",n)}else(0,h.warn)("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.",n)}),t}function j(n,o,c,f,h){if(''===o)return[];var b=f.transKeepBasicHtmlNodesFor||[],j=o&&new RegExp(b.join('|')).test(o);if(!n&&!j)return[o];var E={};return(function n(o){'[object Array]'!==Object.prototype.toString.call(o)&&(o=[o]),o.forEach(function(o){'string'!=typeof o&&(y(o)?n(v(o)):'object'!==(0,s.default)(o)||u.default.isValidElement(o)||t(E,o))})})(n),o=c.services.interpolator.interpolate(o,(0,l.default)({},E,h),c.language),v((function t(n,o){return'[object Array]'!==Object.prototype.toString.call(n)&&(n=[n]),'[object Array]'!==Object.prototype.toString.call(o)&&(o=[o]),o.reduce(function(o,c,p){var h,b=c.children&&c.children[0]&&c.children[0].content;if('tag'===c.type){var E=n[parseInt(c.name,10)]||{},O=u.default.isValidElement(E);if('string'==typeof E)o.push(E);else if(y(E)){var k=v(E),x=t(k,c.children),S=(h=k,'[object Array]'===Object.prototype.toString.call(h)&&h.every(function(t){return u.default.isValidElement(t)})&&0===x.length?k:x);E.dummy&&(E.children=S),o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),S))}else if(j&&'object'===(0,s.default)(E)&&E.dummy&&!O){var N=t(n,c.children);o.push(u.default.cloneElement(E,(0,l.default)({},E.props,{key:p}),N))}else if(isNaN(c.name)&&f.transSupportBasicHtmlNodes)if(c.voidElement)o.push(u.default.createElement(c.name,{key:"".concat(c.name,"-").concat(p)}));else{var w=t(n,c.children);o.push(u.default.createElement(c.name,{key:"".concat(c.name,"-").concat(p)},w))}else if('object'!==(0,s.default
__d(function(g,r,i,a,m,e,d){function t(){return m.exports=t=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var p in o)Object.prototype.hasOwnProperty.call(o,p)&&(t[p]=o[p])}return t},t.apply(this,arguments)}m.exports=t},845,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var c=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(t,n):{};c.get||c.set?Object.defineProperty(o,n,c):o[n]=t[n]}return o.default=t,o}},846,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){return n&&n.__esModule?n:{default:n}}},847,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n,o){if(null==n)return{};var l,p,b=t(n,o);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);for(p=0;p<c.length;p++)l=c[p],o.indexOf(l)>=0||Object.prototype.propertyIsEnumerable.call(n,l)&&(b[l]=n[l])}return b}},848,[849]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,t){if(null==n)return{};var f,u,o={},c=Object.keys(n);for(u=0;u<c.length;u++)f=c[u],t.indexOf(f)>=0||(o[f]=n[f]);return o}},849,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);m.exports=function(n){for(var o=1;o<arguments.length;o++){var c=null!=arguments[o]?arguments[o]:{},f=Object.keys(c);'function'==typeof Object.getOwnPropertySymbols&&(f=f.concat(Object.getOwnPropertySymbols(c).filter(function(t){return Object.getOwnPropertyDescriptor(c,t).enumerable}))),f.forEach(function(o){t(n,o,c[o])})}return n}},850,[851]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,t,u){return t in n?Object.defineProperty(n,t,{value:u,enumerable:!0,configurable:!0,writable:!0}):n[t]=u,n}},851,[]);
__d(function(g,r,i,a,m,e,d){function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":typeof o})(t)}function t(n){return"function"==typeof Symbol&&"symbol"===o("function"==typeof Symbol?Symbol.iterator:"@@iterator")?m.exports=t=function(t){return o(t)}:m.exports=t=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==("function"==typeof Symbol?Symbol.prototype:"@@prototype")?"symbol":o(t)},t(n)}m.exports=t},852,[]);
__d(function(g,r,i,a,m,e,d){m.exports={parse:r(d[0]),stringify:r(d[1])}},853,[854,857]);
__d(function(g,r,i,a,m,e,d){var n=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,t=r(d[0]),c=Object.create?Object.create(null):{};function o(n,t,c,o,h){var p=t.indexOf('<',o),s=t.slice(o,-1===p?void 0:p);/^\s*$/.test(s)&&(s=' '),(!h&&p>-1&&c+n.length>=0||' '!==s)&&n.push({type:'text',content:s})}m.exports=function(h,p){p||(p={}),p.components||(p.components=c);var s,l=[],u=-1,f=[],v={},x=!1;return h.replace(n,function(n,c){if(x){if(n!=='</'+s.name+'>')return;x=!1}var O,y='/'!==n.charAt(1),W=0===n.indexOf('\x3c!--'),b=c+n.length,j=h.charAt(b);y&&!W&&(u++,'tag'===(s=t(n)).type&&p.components[s.name]&&(s.type='component',x=!0),s.voidElement||x||!j||'<'===j||o(s.children,h,u,b,p.ignoreWhitespace),v[s.tagName]=s,0===u&&l.push(s),(O=f[u-1])&&O.children.push(s),f[u]=s),(W||!y||s.voidElement)&&(W||u--,!x&&'<'!==j&&j&&o(O=-1===u?l:f[u].children,h,u,b,p.ignoreWhitespace))}),!l.length&&h.length&&o(l,h,0,0,p.ignoreWhitespace),l}},854,[855]);
__d(function(g,r,i,a,m,e,d){var t=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,n=r(d[0]);m.exports=function(o){var c,l=0,v=!0,s={type:'tag',name:'',voidElement:!1,attrs:{},children:[]};return o.replace(t,function(t){if('='===t)return v=!0,void l++;v?0===l?((n[t]||'/'===o.charAt(o.length-2))&&(s.voidElement=!0),s.name=t):(s.attrs[c]=t.replace(/^['"]|['"]$/g,''),c=void 0):(c&&(s.attrs[c]=c),c=t),l++,v=!1}),s}},855,[856]);
__d(function(g,r,i,a,m,e,d){m.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},856,[]);
__d(function(g,r,i,a,m,e,d){function n(n){var t=[];for(var u in n)t.push(u+'="'+n[u]+'"');return t.length?' '+t.join(' '):''}function t(u,c){switch(c.type){case'text':return u+c.content;case'tag':return u+='<'+c.name+(c.attrs?n(c.attrs):'')+(c.voidElement?'/>':'>'),c.voidElement?u:u+c.children.reduce(t,'')+'</'+c.name+'>'}}m.exports=function(n){return n.reduce(function(n,u){return n+t('',u)},'')}},857,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.usedI18nextProvider=function(t){s=t},e.getHasUsedI18nextProvider=function(){return s},e.setDefaults=l,e.getDefaults=function(){return f},e.setI18n=I,e.getI18n=N,e.composeInitialProps=function(t){return function(n){return new Promise(function(s){var u=P();t.getInitialProps?t.getInitialProps(n).then(function(t){s((0,c.default)({},t,u))}):s(u)})}},e.getInitialProps=P,e.initReactI18next=e.ReportNamespaces=e.I18nContext=void 0;var n,s,u=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),f={bindI18n:'languageChanging languageChanged',bindI18nStore:'',transEmptyNodeValue:'',transSupportBasicHtmlNodes:!0,transKeepBasicHtmlNodesFor:['br','strong','i','p'],useSuspense:!0},p=t(r(d[4])).default.createContext();function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f=(0,c.default)({},f,t)}e.I18nContext=p;var v=(function(){function t(){(0,u.default)(this,t),this.usedNamespaces={}}return(0,o.default)(t,[{key:"addUsedNamespaces",value:function(t){var n=this;t.forEach(function(t){n.usedNamespaces[t]||(n.usedNamespaces[t]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),t})();function I(t){n=t}function N(){return n}e.ReportNamespaces=v;var h={type:'3rdParty',init:function(t){l(t.options.react),I(t)}};function P(){var t=N(),n=t.reportNamespaces?t.reportNamespaces.getUsedNamespaces():[],s={},u={};return t.languages.forEach(function(s){u[s]={},n.forEach(function(n){u[s][n]=t.getResourceBundle(s,n)||{}})}),s.initialI18nStore=u,s.initialLanguage=t.language,s}e.initReactI18next=h},858,[847,859,860,850,59]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n,o){if(!(n instanceof o))throw new TypeError("Cannot call a class as a function")}},859,[]);
__d(function(g,r,i,a,m,e,d){function n(n,t){for(var o=0;o<t.length;o++){var u=t[o];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(n,u.key,u)}}m.exports=function(t,o,u){return o&&n(t.prototype,o),u&&n(t,u),t}},860,[]);
__d(function(g,r,i,a,m,e,d){"use strict";function n(){if(console&&console.warn){for(var n,t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];'string'==typeof o[0]&&(o[0]="react-i18next:: ".concat(o[0])),(n=console).warn.apply(n,o)}}Object.defineProperty(e,"__esModule",{value:!0}),e.warn=n,e.warnOnce=o,e.loadNamespaces=function(n,t,o){n.loadNamespaces(t,function(){if(n.isInitialized)o();else{n.on('initialized',function t(){setTimeout(function(){n.off('initialized',t)},0),o()})}})},e.hasLoadedNamespace=function(n,t){if(!t.languages||!t.languages.length)return o('i18n.languages were undefined or empty',t.languages),!0;var s=t.languages[0],c=!!t.options&&t.options.fallbackLng,l=t.languages[t.languages.length-1];if('cimode'===s.toLowerCase())return!0;var u=function(n,o){var s=t.services.backendConnector.state["".concat(n,"|").concat(o)];return-1===s||2===s};return!!t.hasResourceBundle(s,n)||!t.services.backendConnector.backend||!(!u(s,n)||c&&!u(l,n))},e.getDisplayName=function(n){return n.displayName||n.name||('string'==typeof n&&n.length>0?n:'Unknown')};var t={};function o(){for(var o=arguments.length,s=new Array(o),c=0;c<o;c++)s[c]=arguments[c];'string'==typeof s[0]&&t[s[0]]||('string'==typeof s[0]&&(t[s[0]]=new Date),n.apply(void 0,s))}},861,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.useTranslation=function(n){var f=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=f.i18n,l=(0,u.getHasUsedI18nextProvider)()&&(0,o.useContext)(u.I18nContext)||{},v=l.i18n,N=l.defaultNS,I=p||v||(0,u.getI18n)();I&&!I.reportNamespaces&&(I.reportNamespaces=new u.ReportNamespaces);if(!I){(0,c.warnOnce)('You will need pass in an i18next instance by using initReactI18next');var S=[function(n){return n},{},!0];return S.t=function(n){return n},S.i18n={},S.ready=!0,S}var x=(0,s.default)({},(0,u.getDefaults)(),I.options.react),y=f.useSuspense,b=void 0===y?x.useSuspense:y,h=n||N||I.options&&I.options.defaultNS;h='string'==typeof h?[h]:h||['translation'],I.reportNamespaces.addUsedNamespaces&&I.reportNamespaces.addUsedNamespaces(h);var w=(I.isInitialized||I.initializedStoreOnce)&&h.every(function(n){return(0,c.hasLoadedNamespace)(n,I)});function _(){return{t:I.getFixedT(null,'fallback'===x.nsMode?h:h[0])}}var E=(0,o.useState)(_()),O=(0,t.default)(E,2),P=O[0],U=O[1];(0,o.useEffect)(function(){var n=!0,t=x.bindI18n,s=x.bindI18nStore;function o(){n&&U(_())}return w||b||(0,c.loadNamespaces)(I,h,function(){n&&U(_())}),t&&I&&I.on(t,o),s&&I&&I.store.on(s,o),function(){n=!1,t&&I&&t.split(' ').forEach(function(n){return I.off(n,o)}),s&&I&&s.split(' ').forEach(function(n){return I.store.off(n,o)})}},[h.join()]);var j=[P.t,I,w];if(j.t=P.t,j.i18n=I,j.ready=w,w)return j;if(!w&&!b)return j;throw new Promise(function(n){(0,c.loadNamespaces)(I,h,function(){U(_()),n()})})};var t=n(r(d[1])),s=n(r(d[2])),o=r(d[3]),u=r(d[4]),c=r(d[5])},862,[847,863,850,59,858,861]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]);m.exports=function(u,c){return n(u)||t(u,c)||o()}},863,[864,865,866]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(Array.isArray(n))return n}},864,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(t,n){var o=[],l=!0,u=!1,f=void 0;try{for(var y,c=t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();!(l=(y=c.next()).done)&&(o.push(y.value),!n||o.length!==n);l=!0);}catch(t){u=!0,f=t}finally{try{l||null==c.return||c.return()}finally{if(u)throw f}}return o}},865,[]);
__d(function(g,r,i,a,m,e,d){m.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},866,[]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.withTranslation=function(t){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(s){function p(l,p){var v=(0,o.useTranslation)(t,l),h=(0,u.default)(v,3),w=h[0],y=h[1],R=h[2],_=(0,n.default)({},l,{t:w,i18n:y,tReady:R});return c.withRef&&p&&(_.ref=p),f.default.createElement(s,_)}return p.displayName="withI18nextTranslation(".concat((0,l.getDisplayName)(s),")"),p.WrappedComponent=s,c.withRef?f.default.forwardRef(p):p}};var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=r(d[4]),l=r(d[5])},867,[847,850,863,59,862,861]);
__d(function(g,r,i,a,m,e,d){"use strict";var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Translation=function(n){var s=n.ns,c=n.children,o=(0,l.default)(n,["ns","children"]),f=(0,u.useTranslation)(s,o),v=(0,t.default)(f,3),_=v[0],h=v[1],T=v[2];return c(_,{i18n:h,lng:h.language},T)};var t=n(r(d[1])),l=n(r(d[2])),u=(n(r(d[3])),r(d[4]))},868,[847,863,848,59,862]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.I18nextProvider=function(t){var l=t.i18n,o=t.defaultNS,v=t.children;return(0,u.usedI18nextProvider)(!0),n.default.createElement(u.I18nContext.Provider,{value:{i18n:l,defaultNS:o}},v)};var n=t(r(d[1])),u=r(d[2])},869,[847,59,858]);
__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.withSSR=function(){return function(t){function s(c){var p=c.initialI18nStore,s=c.initialLanguage,f=(0,u.default)(c,["initialI18nStore","initialLanguage"]);return(0,l.useSSR)(p,s),o.default.createElement(t,(0,n.default)({},f))}return s.getInitialProps=(0,c.composeInitialProps)(t),s.displayName="withI18nextSSR(".concat((0,p.getDisplayName)(t),")"),s.WrappedComponent=t,s}};var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=r(d[4]),c=r(d[5]),p=r(d[6])},870,[847,850,848,59,871,858,861]);
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useSSR=function(o,s){var u=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).i18n,c=((0,t.getHasUsedI18nextProvider)()?(0,n.useContext)(t.I18nContext):{}).i18n,l=u||c||(0,t.getI18n)();if(l.options&&l.options.isClone)return;o&&!l.initializedStoreOnce&&(l.services.resourceStore.data=o,l.initializedStoreOnce=!0);s&&!l.initializedLanguageOnce&&(l.changeLanguage(s),l.initializedLanguageOnce=!0)};var n=r(d[0]),t=r(d[1])},871,[59,858]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),p=t(r(d[5])),l=t(r(d[6])),f=r(d[7]),c=r(d[8]),_=(function(t){function f(t){var n;return(0,s.default)(this,f),(n=(0,u.default)(this,(0,o.default)(f).call(this,t)))._onDismissed=n._onDismissed.bind((0,l.default)((0,l.default)(n))),n}return(0,p.default)(f,t),(0,n.default)(f,[{key:"_getDescription",value:function(){var t=this.props,s=t.description,n=t.descriptionArguments,u=t.descriptionKey,o=t.t,p=[];return u&&p.push(o(u,n)),s&&p.push(s),p}},{key:"_getDescriptionKey",value:function(){return this.props.descriptionKey}},{key:"_onDismissed",value:function(){this.props.onDismissed(this.props.uid)}}]),f})(f.Component);e.default=_,_.defaultProps={appearance:c.NOTIFICATION_TYPE.NORMAL,isDismissAllowed:!0}},872,[3,4,5,6,9,10,8,59,722]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),n={contentColumn:{justifyContent:'center',flex:1,flexDirection:'column',paddingLeft:1.5*o.BoxModel.padding},contentText:{alignSelf:'flex-start',color:o.ColorPalette.white},dismissIcon:{color:o.ColorPalette.white,fontSize:20,padding:1.5*o.BoxModel.padding},notification:{backgroundColor:'#768898',flexDirection:'row',minHeight:48,marginTop:.5*o.BoxModel.margin},notificationContainer:{flexGrow:0,justifyContent:'flex-end'},notificationContent:{flexDirection:'column'}};e.default=n},873,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),p=n(r(d[8])),h=r(d[9]),v=r(d[10]),_=t(r(d[11])),y=n(r(d[12])),b=n(r(d[13])),E=(function(t){function n(){return(0,l.default)(this,n),(0,s.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props._notifications,n=t&&t.length&&t[0];return n?p.default.createElement(h.View,{pointerEvents:"box-none",style:[b.default.notificationContainer,this.props.style]},p.default.createElement(y.default,(0,u.default)({},n.props,{onDismissed:this._onDismissed,uid:n.uid}))):null}}]),n})(_.default),D=(0,v.connect)(_._abstractMapStateToProps)(E);e.default=D},874,[2,3,24,4,5,6,9,10,59,15,443,875,725,873]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._abstractMapStateToProps=function(t){var o=t['features/notifications'].notifications;return{_notifications:(0,T.areThereNotifications)(t)?o:[],autoDismissTimeout:'undefined'==typeof interfaceConfig?void 0:interfaceConfig.ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT}},e.default=void 0;var o=t(r(d[1])),s=t(r(d[2])),n=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),l=r(d[7]),_=r(d[8]),T=r(d[9]),h=(function(t){function l(t){var s;return(0,o.default)(this,l),(s=(0,n.default)(this,(0,u.default)(l).call(this,t)))._notificationDismissTimeout=null,s._onDismissed=s._onDismissed.bind((0,c.default)((0,c.default)(s))),s}return(0,f.default)(l,t),(0,s.default)(l,[{key:"componentDidMount",value:function(){this._manageDismissTimeout()}},{key:"componentDidUpdate",value:function(t){this._manageDismissTimeout(t)}},{key:"_manageDismissTimeout",value:function(t){var o=this,s=this.props,n=s._notifications,u=s.autoDismissTimeout;if(n.length){var f=n[0];if(f!==(t&&t._notifications.length?t._notifications[0]:void 0)&&(this._clearNotificationDismissTimeout(),f&&(f.timeout||'number'==typeof u)&&!1!==f.props.isDismissAllowed)){var c=f.timeout,l=void 0===c?u:c,_=f.uid;this._notificationDismissTimeout=setTimeout(function(){o._onDismissed(_)},l)}}else this._notificationDismissTimeout&&this._clearNotificationDismissTimeout()}},{key:"componentWillUnmount",value:function(){this._clearNotificationDismissTimeout()}},{key:"_clearNotificationDismissTimeout",value:function(){this._notificationDismissTimeout&&clearTimeout(this._notificationDismissTimeout),this._notificationDismissTimeout=null}},{key:"_onDismissed",value:function(t){var o=this.props._notifications;o.length&&o[0].uid!==t||this._clearNotificationDismissTimeout(),this.props.dispatch((0,_.hideNotification)(t))}}]),l})(l.Component);e.default=h},875,[3,4,5,6,9,10,8,59,707,876]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.areThereNotifications=function(t){var o=(0,n.toState)(t)['features/notifications'],f=o.enabled,c=o.notifications;return f&&c.length>0},e.joinLeaveNotificationsDisabled=function(){var n;return Boolean('undefined'!=typeof interfaceConfig&&(null==(n=interfaceConfig)?void 0:n.DISABLE_JOIN_LEAVE_NOTIFICATIONS))};var n=r(d[0])},876,[443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_LOADABLE_AVATAR_URL=e.HIDDEN_PARTICIPANT_LEFT=e.HIDDEN_PARTICIPANT_JOINED=e.PIN_PARTICIPANT=e.PARTICIPANT_UPDATED=e.PARTICIPANT_LEFT=e.PARTICIPANT_KICKED=e.PARTICIPANT_JOINED=e.PARTICIPANT_ROLE_CHANGED=e.PARTICIPANT_ID_CHANGED=e.PARTICIPANT_DISPLAY_NAME_CHANGED=e.MUTE_REMOTE_PARTICIPANT=e.KICK_PARTICIPANT=e.GRANT_MODERATOR=e.DOMINANT_SPEAKER_CHANGED=void 0;e.DOMINANT_SPEAKER_CHANGED='DOMINANT_SPEAKER_CHANGED';e.GRANT_MODERATOR='GRANT_MODERATOR';e.KICK_PARTICIPANT='KICK_PARTICIPANT';e.MUTE_REMOTE_PARTICIPANT='MUTE_REMOTE_PARTICIPANT';e.PARTICIPANT_DISPLAY_NAME_CHANGED='PARTICIPANT_DISPLAY_NAME_CHANGED';e.PARTICIPANT_ID_CHANGED='PARTICIPANT_ID_CHANGED';e.PARTICIPANT_ROLE_CHANGED='PARTICIPANT_ROLE_CHANGED';e.PARTICIPANT_JOINED='PARTICIPANT_JOINED';e.PARTICIPANT_KICKED='PARTICIPANT_KICKED';e.PARTICIPANT_LEFT='PARTICIPANT_LEFT';e.PARTICIPANT_UPDATED='PARTICIPANT_UPDATED';e.PIN_PARTICIPANT='PIN_PARTICIPANT';e.HIDDEN_PARTICIPANT_JOINED='HIDDEN_PARTICIPANT_JOINED';e.HIDDEN_PARTICIPANT_LEFT='HIDDEN_PARTICIPANT_LEFT';e.SET_LOADABLE_AVATAR_URL='SET_LOADABLE_AVATAR_URL'},877,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getFirstLoadableAvatarUrl=function(t){var n=(0,l.createDeferred)(),u=n.promise.then(function(){return y(t)}).then(function(t){if(v.length){var n=v.shift();n.resolve()}return t});v.length?v.push(n):n.resolve();return u},e.getLocalParticipant=I,e.getNormalizedDisplayName=function(t){if(!t||!t.trim())return;return t.trim().substring(0,p.MAX_DISPLAY_NAME_LENGTH)},e.getParticipantById=T,e.getParticipantCount=function(t){return h(t).length},e.getParticipantCountWithFake=function(t){return E(t).length},e.getParticipantDisplayName=function(t,n){var u=T(t,n);if(u){if(u.name)return u.name;if(u.local)return'object'==typeof interfaceConfig?interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME:'me'}return'object'==typeof interfaceConfig?interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME:'Fellow Jitster'},e.getParticipantPresenceStatus=function(t,n){if(!n)return;var u=T(t,n);if(!u)return;return u.presence},e.getParticipants=h,e.getPinnedParticipant=function(t){return E(t).find(function(t){return t.pinned})},e.getYoutubeParticipant=function(t){return E(t).filter(function(t){return t.isFakeParticipant})[0]},e.isParticipantModerator=_,e.isEveryoneModerator=function(t){return E(t).every(_)},e.isIconUrl=function(t){return Boolean(t)&&'object'==typeof t},e.isLocalParticipantModerator=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=(0,f.toState)(t),o=I(u);if(!o)return!1;return o.role===p.PARTICIPANT_ROLE.MODERATOR&&(n||!u['features/base/config'].enableUserRolesBasedOnToken||!u['features/base/jwt'].isGuest)},e.shouldRenderParticipantVideo=function(t,n){var u=(0,f.toState)(t),l=T(u,n);if(!l)return!1;var p=(0,s.getTrackByMediaTypeAndParticipant)(u['features/base/tracks'],c.MEDIA_TYPE.VIDEO,n);if(!(0,c.shouldRenderVideoTrack)(p,!1))return!1;if((l.connectionStatus||o.JitsiParticipantConnectionStatus.ACTIVE)!==o.JitsiParticipantConnectionStatus.ACTIVE)return!1;if(!u['features/base/audio-only'].enabled)return!0;var P=u['features/video-layout'].screenShares||[],v=u['features/large-video'].participantId;return l.id===v&&P.includes(l.id)};var n=t(r(d[1])),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),s=r(d[6]),l=r(d[7]),p=r(d[8]),P=r(d[9]),v=[],A=new Map,b=[function(t){return t&&t.isJigasi?p.JIGASI_PARTICIPANT_ICON:null},function(t){return t&&t.avatarURL?t.avatarURL:null},function(t){return t&&t.email?(0,u.getGravatarURL)(t.email):null}];function I(t){return E(t).find(function(t){return t.local})}function T(t,n){return E(t).find(function(t){return t.id===n})}function h(t){return E(t).filter(function(t){return!t.isFakeParticipant})}function E(t){return Array.isArray(t)?t:(0,f.toState)(t)['features/base/participants']||[]}function _(t){return(null==t?void 0:t.role)===p.PARTICIPANT_ROLE.MODERATOR}function y(t){var u,o,c;return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:u=0;case 1:if(!(u<b.length)){f.next=23;break}if(!(o=b[u](t))){f.next=20;break}if(!A.has(o)){f.next=9;break}if(!A.get(o)){f.next=7;break}return f.abrupt("return",o);case 7:f.next=20;break;case 9:return f.prev=9,f.next=12,n.default.awrap((0,P.preloadImage)(o));case 12:return c=f.sent,A.set(c,!0),f.abrupt("return",c);case 17:f.prev=17,f.t0=f.catch(9),A.set(o,!1);case 20:u++,f.next=1;break;case 23:return f.abrupt("return",void 0);case 24:case"end":return f.stop()}},null,this,[[9,17]])}},878,[3,270,484,879,887,443,903,506,945,946]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={analytics:!0,browser:!0,JitsiConferenceErrors:!0,JitsiConferenceEvents:!0,JitsiConnectionErrors:!0,JitsiConnectionEvents:!0,JitsiConnectionQualityEvents:!0,JitsiDetectionEvents:!0,JitsiE2ePingEvents:!0,JitsiMediaDevicesEvents:!0,JitsiParticipantConnectionStatus:!0,JitsiRecordingConstants:!0,JitsiSIPVideoGWStatus:!0,JitsiTrackErrors:!0,JitsiTrackEvents:!0};Object.defineProperty(e,"default",{enumerable:!0,get:function(){return s.default}}),e.JitsiTrackEvents=e.JitsiTrackErrors=e.JitsiSIPVideoGWStatus=e.JitsiRecordingConstants=e.JitsiParticipantConnectionStatus=e.JitsiMediaDevicesEvents=e.JitsiE2ePingEvents=e.JitsiDetectionEvents=e.JitsiConnectionQualityEvents=e.JitsiConnectionEvents=e.JitsiConnectionErrors=e.JitsiConferenceEvents=e.JitsiConferenceErrors=e.browser=e.analytics=void 0;var s=t(r(d[1])),o=r(d[2]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=r(d[3]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var v=r(d[4]);Object.keys(v).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return v[t]}}))});var u=s.default.analytics;e.analytics=u;var f=s.default.util.browser;e.browser=f;var l=s.default.errors.conference;e.JitsiConferenceErrors=l;var J=s.default.events.conference;e.JitsiConferenceEvents=J;var E=s.default.errors.connection;e.JitsiConnectionErrors=E;var y=s.default.events.connection;e.JitsiConnectionEvents=y;var C=s.default.events.connectionQuality;e.JitsiConnectionQualityEvents=C;var p=s.default.events.detection;e.JitsiDetectionEvents=p;var b=s.default.events.e2eping;e.JitsiE2ePingEvents=b;var P=s.default.events.mediaDevices;e.JitsiMediaDevicesEvents=P;var O=s.default.constants.participantConnectionStatus;e.JitsiParticipantConnectionStatus=O;var j=s.default.constants.recording;e.JitsiRecordingConstants=j;var k=s.default.constants.sipVideoGW;e.JitsiSIPVideoGWStatus=k;var S=s.default.errors.track;e.JitsiTrackErrors=S;var _=s.default.events.track;e.JitsiTrackEvents=_},879,[3,503,880,883,884]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.disposeLib=function(){return function(t){t({type:u.LIB_WILL_DISPOSE}),t({type:u.LIB_DID_DISPOSE})}},e.initLib=function(){return function(t,c){var l=c(),s=l['features/base/config'];if(!s)throw new Error('Cannot init lib-jitsi-meet without config');t({type:u.LIB_WILL_INIT});try{I.default.init((0,n.default)({enableAnalyticsLogging:(0,f.isAnalyticsEnabled)(c)},s)),I.default.setNetworkInfo({isOnline:(0,o.isOnline)(l)}),t({type:u.LIB_DID_INIT})}catch(n){t(_(n))}}},e.libInitError=_;var n=t(r(d[1])),o=r(d[2]),I=t(r(d[3])),u=r(d[4]),f=r(d[5]);function _(t){return{type:u.LIB_INIT_ERROR,error:t}}},880,[3,53,881,503,883,884]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isOnline=function(t){return t[n.STORE_NAME].isOnline};var n=r(d[0])},881,[882]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.STORE_NAME=void 0;e.STORE_NAME='features/base/net-info'},882,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.LIB_WILL_INIT=e.LIB_WILL_DISPOSE=e.LIB_INIT_ERROR=e.LIB_DID_INIT=e.LIB_DID_DISPOSE=void 0;e.LIB_DID_DISPOSE='LIB_DID_DISPOSE';e.LIB_DID_INIT='LIB_DID_INIT';e.LIB_INIT_ERROR='LIB_INIT_ERROR';e.LIB_WILL_DISPOSE='LIB_WILL_DISPOSE';e.LIB_WILL_INIT='LIB_WILL_INIT'},883,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={loadConfig:!0};e.loadConfig=function(t){var n,c,l;return o.default.async(function(p){for(;;)switch(p.prev=p.next){case 0:return p.prev=0,p.next=3,o.default.awrap((0,f.loadScript)(t,2500,!0));case 3:return n=p.sent,p.next=6,o.default.awrap(s.evaluate(n+"\nJSON.stringify(config);"));case 6:if(c=p.sent,'object'==typeof(l=JSON.parse(c))){p.next=10;break}throw new Error('config is not an object');case 10:return u.default.info("Config loaded from "+t),p.abrupt("return",l);case 14:throw p.prev=14,p.t0=p.catch(0),u.default.error("Failed to load config from "+t,p.t0),p.t0;case 18:case"end":return p.stop()}},null,this,[[0,14]])};var o=t(r(d[1])),c=r(d[2]),f=r(d[3]),u=t(r(d[4])),l=r(d[5]);Object.keys(l).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return l[t]}}))});var s=c.NativeModules.JavaScriptSandbox},884,[3,270,15,506,885,886]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/lib-jitsi-meet');e.default=t},885,[495]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.createLocalTrack=function(n,c){return o.default.createLocalTracks({cameraDeviceId:c,devices:[n],firefox_fake_device:window.config&&window.config.firefox_fake_device,micDeviceId:c}).then(function(n){var c=(0,t.default)(n,1),o=c[0];return o})},e.isAnalyticsEnabled=function(n){var t=(0,c.toState)(n)['features/base/config'],o=t.disableThirdPartyRequests,f=t.analytics,E=void 0===f?{}:f;return!(o||E.disabled)},e.isFatalJitsiConferenceError=function(n){'string'!=typeof n&&(n=n.name);return n===f.FOCUS_DISCONNECTED||n===f.FOCUS_LEFT||n===f.ICE_FAILED||n===f.OFFER_ANSWER_FAILED||n===f.VIDEOBRIDGE_NOT_AVAILABLE},e.isFatalJitsiConnectionError=function(n){'string'!=typeof n&&(n=n.name);return n===E.CONNECTION_DROPPED_ERROR||n===E.OTHER_ERROR||n===E.SERVER_ERROR};var t=n(r(d[1])),c=r(d[2]),o=n(r(d[3])),f=o.default.errors.conference,E=o.default.errors.connection},886,[3,25,443,503]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},887,[888,889,891,890,944]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setAudioAvailable=function(n){return{type:t.SET_AUDIO_AVAILABLE,available:n}},e.setAudioMuted=function(n){var u=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:t.SET_AUDIO_MUTED,ensureTrack:u,muted:n}},e.setCameraFacingMode=function(n){return{type:t.SET_CAMERA_FACING_MODE,cameraFacingMode:n}},e.setVideoAvailable=function(n){return{type:t.SET_VIDEO_AVAILABLE,available:n}},e.setVideoMuted=function(u){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.MEDIA_TYPE.VIDEO,E=arguments.length>2&&void 0!==arguments[2]?arguments[2]:n.VIDEO_MUTISM_AUTHORITY.USER,_=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(n,A){var T=A()['features/base/media'].video.muted,c=u?T|E:T&~E;return n({type:t.SET_VIDEO_MUTED,authority:E,mediaType:o,ensureTrack:_,muted:c})}},e.storeVideoTransform=function(n,u){return{type:t.STORE_VIDEO_TRANSFORM,streamId:n,transform:u}},e.toggleCameraFacingMode=function(){return{type:t.TOGGLE_CAMERA_FACING_MODE}};var t=r(d[0]),n=r(d[1])},888,[889,890]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_CAMERA_FACING_MODE=e.STORE_VIDEO_TRANSFORM=e.SET_VIDEO_MUTED=e.SET_VIDEO_AVAILABLE=e.SET_CAMERA_FACING_MODE=e.SET_AUDIO_AVAILABLE=e.SET_AUDIO_MUTED=void 0;e.SET_AUDIO_MUTED='SET_AUDIO_MUTED';e.SET_AUDIO_AVAILABLE='SET_AUDIO_AVAILABLE';e.SET_CAMERA_FACING_MODE='SET_CAMERA_FACING_MODE';e.SET_VIDEO_AVAILABLE='SET_VIDEO_AVAILABLE';e.SET_VIDEO_MUTED='SET_VIDEO_MUTED';e.STORE_VIDEO_TRANSFORM='STORE_VIDEO_TRANSFORM';e.TOGGLE_CAMERA_FACING_MODE='TOGGLE_CAMERA_FACING_MODE'},889,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.VIDEO_TYPE=e.VIDEO_MUTISM_AUTHORITY=e.MEDIA_TYPE=e.CAMERA_FACING_MODE=void 0;e.CAMERA_FACING_MODE={ENVIRONMENT:'environment',USER:'user'};e.MEDIA_TYPE={AUDIO:'audio',PRESENTER:'presenter',VIDEO:'video'};e.VIDEO_MUTISM_AUTHORITY={AUDIO_ONLY:1,BACKGROUND:2,USER:4};e.VIDEO_TYPE={CAMERA:'camera',DESKTOP:'desktop'}},890,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},891,[892]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},892,[893]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Audio",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Video",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"VideoTrack",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3]))},893,[3,894,898,901]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),h=t(r(d[7])),p=t(r(d[8])),c=(function(t){function c(){return(0,u.default)(this,c),(0,l.default)(this,(0,o.default)(c).apply(this,arguments))}return(0,f.default)(c,t),(0,n.default)(c,[{key:"_soundLoadedCallback",value:function(t){t?p.default.error('Failed to load sound',t):this.setAudioElementImpl(this._sound)}},{key:"componentDidMount",value:function(){this._sound=this.props.src?new h.default(this.props.src,null,this._soundLoadedCallback.bind(this)):null}},{key:"componentWillUnmount",value:function(){this._sound&&(this._sound.release(),this._sound=null,this.setAudioElementImpl(null))}},{key:"play",value:function(){this._sound&&(this._sound.setNumberOfLoops(this.props.loop?-1:0),(0,s.default)((0,o.default)(c.prototype),"play",this).call(this))}},{key:"render",value:function(){return null}},{key:"stop",value:function(){this._sound&&this._sound.stop()}}]),c})(t(r(d[9])).default);e.default=c},894,[3,4,5,6,9,46,10,895,896,897]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=t.NativeModules.RNSound,o=n.IsAndroid,s=n.IsWindows,u=r(d[1]),h=new t.NativeEventEmitter(n),p=0;function l(t,l,y,_){var c=this,f=u(t);f?(this._filename=f.uri,y=l):(this._filename=l?l+'/'+t:t,!o||l||/^(\/|http(s?)|asset)/.test(t)||(this._filename=t.toLowerCase().replace(/\.[^.]+$/,''))),this.registerOnPlay=function(){var t=this;null==this.onPlaySubscription?s||(this.onPlaySubscription=h.addListener('onPlayChange',function(n){var o=n.isPlaying;n.playerKey===t._key&&(t._playing=!!o)})):console.warn('On Play change event listener is already registered')},this._loaded=!1,this._key=p++,this._playing=!1,this._duration=-1,this._numberOfChannels=-1,this._volume=1,this._pan=0,this._numberOfLoops=0,this._speed=1,n.prepare(this._filename,this._key,_||{},function(t,n){n&&('number'==typeof n.duration&&(c._duration=n.duration),'number'==typeof n.numberOfChannels&&(c._numberOfChannels=n.numberOfChannels)),null===t&&(c._loaded=!0,c.registerOnPlay()),y&&y(t,n)})}l.prototype.isLoaded=function(){return this._loaded},l.prototype.play=function(t){return this._loaded?n.play(this._key,function(n){return t&&t(n)}):t&&t(!1),this},l.prototype.pause=function(t){var o=this;return this._loaded&&n.pause(this._key,function(){o._playing=!1,t&&t()}),this},l.prototype.stop=function(t){var o=this;return this._loaded&&n.stop(this._key,function(){o._playing=!1,t&&t()}),this},l.prototype.reset=function(){return this._loaded&&o&&(n.reset(this._key),this._playing=!1),this},l.prototype.release=function(){return this._loaded&&(n.release(this._key),this._loaded=!1,s||null!=this.onPlaySubscription&&(this.onPlaySubscription.remove(),this.onPlaySubscription=null)),this},l.prototype.getDuration=function(){return this._duration},l.prototype.getNumberOfChannels=function(){return this._numberOfChannels},l.prototype.getVolume=function(){return this._volume},l.prototype.setVolume=function(t){return this._volume=t,this._loaded&&(o||s?n.setVolume(this._key,t,t):n.setVolume(this._key,t)),this},l.prototype.getSystemVolume=function(t){return s||n.getSystemVolume(t),this},l.prototype.setSystemVolume=function(t){return o&&n.setSystemVolume(t),this},l.prototype.getPan=function(){return this._pan},l.prototype.setPan=function(t){return this._loaded&&n.setPan(this._key,this._pan=t),this},l.prototype.getNumberOfLoops=function(){return this._numberOfLoops},l.prototype.setNumberOfLoops=function(t){return this._numberOfLoops=t,this._loaded&&(o||s?n.setLooping(this._key,!!t):n.setNumberOfLoops(this._key,t)),this},l.prototype.setSpeed=function(t){return this._speed=t,this._loaded&&(s||n.setSpeed(this._key,t)),this},l.prototype.getCurrentTime=function(t){this._loaded&&n.getCurrentTime(this._key,t)},l.prototype.setCurrentTime=function(t){return this._loaded&&n.setCurrentTime(this._key,t),this},l.prototype.setSpeakerphoneOn=function(t){o&&n.setSpeakerphoneOn(this._key,t)},l.prototype.setCategory=function(t){l.setCategory(t,!1)},l.prototype.isPlaying=function(){return this._playing},l.enable=function(t){n.enable(t)},l.enableInSilenceMode=function(t){o||s||n.enableInSilenceMode(t)},l.setActive=function(t){o||s||n.setActive(t)},l.setCategory=function(t){var o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s||n.setCategory(t,o)},l.setMode=function(t){o||s||n.setMode(t)},l.setSpeakerPhone=function(t){o||s||n.setSpeakerPhone(t)},l.MAIN_BUNDLE=n.MainBundlePath,l.DOCUMENT=n.NSDocumentDirectory,l.LIBRARY=n.NSLibraryDirectory,l.CACHES=n.NSCachesDirectory,m.exports=l},895,[15,179]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/media');e.default=t},896,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),p=r(d[7]),h=t(r(d[8])),I=(function(t){function p(t){var n;return(0,l.default)(this,p),(n=(0,u.default)(this,(0,o.default)(p).call(this,t))).setAudioElementImpl=n.setAudioElementImpl.bind((0,f.default)((0,f.default)(n))),n}return(0,s.default)(p,t),(0,n.default)(p,[{key:"pause",value:function(){this._audioElementImpl&&this._audioElementImpl.pause()}},{key:"play",value:function(){this._audioElementImpl&&this._audioElementImpl.play()}},{key:"setAudioElementImpl",value:function(t){this._audioElementImpl=t;var l=this.props.setRef;'function'==typeof l&&l(t?this:null)}},{key:"setSinkId",value:function(t){this._audioElementImpl&&'function'==typeof this._audioElementImpl.setSinkId&&this._audioElementImpl.setSinkId(t).catch(function(t){return h.default.error('Error setting sink',t)})}},{key:"stop",value:function(){this._audioElementImpl&&this._audioElementImpl.stop()}}]),p})(p.Component);e.default=I},897,[3,4,5,6,9,10,8,59,896]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),v=r(d[9]),h=n(r(d[10])),y=n(r(d[11])),b=(function(t){function n(){return(0,o.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){var t=this.props.onPlaying;t&&t()}},{key:"render",value:function(){var t=this.props,n=t.onPress,o=t.stream,l=t.zoomEnabled;if(o){var u=y.default.video,s=l?'contain':u&&u.objectFit||'cover',f=c.default.createElement(p.RTCView,{mirror:this.props.mirror,objectFit:s,streamURL:o.toURL(),style:u,zOrder:this.props.zOrder});return l?c.default.createElement(h.default,{enabled:l,onPress:n,streamId:o.id,style:u},f):c.default.createElement(v.Pressable,{onPress:n},f)}return null}}]),n})(c.Component);e.default=b},898,[2,3,4,5,6,9,10,59,397,539,899,900]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),h=n(r(d[6])),f=n(r(d[7])),c=n(r(d[8])),v=n(r(d[9])),p=t(r(d[10])),_=r(d[11]),y=r(d[12]),P=r(d[13]),T=n(r(d[14])),S={scale:1,translateX:0,translateY:0},R=5,M=(function(t){function n(t){var s;return(0,l.default)(this,n),(s=(0,h.default)(this,(0,f.default)(n).call(this,t))).state={layout:null,transform:s._getSavedTransform(t.streamId)||S},s._didMove=s._didMove.bind((0,v.default)((0,v.default)(s))),s._getTransformStyle=s._getTransformStyle.bind((0,v.default)((0,v.default)(s))),s._onGesture=s._onGesture.bind((0,v.default)((0,v.default)(s))),s._onLayout=s._onLayout.bind((0,v.default)((0,v.default)(s))),s._onMoveShouldSetPanResponder=s._onMoveShouldSetPanResponder.bind((0,v.default)((0,v.default)(s))),s._onPanResponderGrant=s._onPanResponderGrant.bind((0,v.default)((0,v.default)(s))),s._onPanResponderMove=s._onPanResponderMove.bind((0,v.default)((0,v.default)(s))),s._onPanResponderRelease=s._onPanResponderRelease.bind((0,v.default)((0,v.default)(s))),s._onStartShouldSetPanResponder=s._onStartShouldSetPanResponder.bind((0,v.default)((0,v.default)(s))),s.moveThreshold=_.PixelRatio.get()*R,s.gestureHandlers=_.PanResponder.create({onPanResponderGrant:s._onPanResponderGrant,onPanResponderMove:s._onPanResponderMove,onPanResponderRelease:s._onPanResponderRelease,onPanResponderTerminationRequest:function(){return!0},onMoveShouldSetPanResponder:s._onMoveShouldSetPanResponder,onShouldBlockNativeResponder:function(){return!1},onStartShouldSetPanResponder:s._onStartShouldSetPanResponder}),s}return(0,c.default)(n,t),(0,u.default)(n,[{key:"componentDidUpdate",value:function(t,n){t.streamId!==this.props.streamId&&(this._storeTransform(t.streamId,n.transform),this._restoreTransform(this.props.streamId))}},{key:"componentWillUnmount",value:function(){this._storeTransform(this.props.streamId,this.state.transform)}},{key:"render",value:function(){var t=this.props,n=t.children,s=t.style;return p.default.createElement(_.View,(0,o.default)({onLayout:this._onLayout,pointerEvents:"box-only",style:[T.default.videoTransformedViewContainer,s]},this.gestureHandlers.panHandlers),p.default.createElement(_.View,{style:[T.default.videoTranformedView,this._getTransformStyle()]},n))}},{key:"_calculateTransformIncrement",value:function(t){var n=this.state.transform,s=n.scale,o=n.translateX,l=n.translateY,u=t.scale,h=t.translateX,f=t.translateY;return{scale:s=Math.min(s*(u||1),5),translateX:o+=(h||0)/s,translateY:l+=(f||0)/s}}},{key:"_didMove",value:function(t){var n=t.dx,s=t.dy;return Math.abs(n)>this.moveThreshold||Math.abs(s)>this.moveThreshold}},{key:"_getSavedTransform",value:function(t){var n=this.props,s=n.enabled,o=n._transforms;return s&&o[t]||null}},{key:"_getTouchDistance",value:function(t){var n=t.nativeEvent.touches,s=Math.abs(n[0].pageX-n[1].pageX),o=Math.abs(n[0].pageY-n[1].pageY);return Math.sqrt(Math.pow(s,2)+Math.pow(o,2))}},{key:"_getTouchPosition",value:function(t){var n=t.nativeEvent.touches;return{x:n[0].pageX,y:n[0].pageY}}},{key:"_getTransformStyle",value:function(){if(!this.props.enabled)return null;var t=this.state.transform;return{transform:[{scale:t.scale},{translateX:t.translateX},{translateY:t.translateY}]}}},{key:"_limitAndApplyTransformation",value:function(t){var n=this.state.layout;if(n){var s=this.state.transform.scale,o=t.scale,l=t.translateX,u=t.translateY,h=Math.max(o,1),f={a:{x:n.x,y:n.y},d:{x:n.x+n.width,y:n.y+n.height}},c={x:(n.x+n.width)/2+l*h,y:(n.y+n.height)/2+u*h},v={height:n.height*h,width:n.width*h},p={a:{x:c.x-v.width/2,y:c.y-v.height/2},d:{x:c.x+v.width/2,y:c.y+v.height/2}},_=100;o<s&&(_=Math.min(100,100*(h-1))),l-=Math.max(p.a.x-f.a.x-_,0),l+=Math.max(f.d.x-p.d.x-_,0),u-=Math.max(p.a.y-f.a.y-_,0),u+=Math.max(f.d.y-p.d.y-_,0),this.setState({transform:{scale:h,translateX:Math.round(l),translateY:Math.round(u)}})}}},{key:"_onGesture",value:function(t,n){var o;switch(t){case'move':o=(0,s.default)({},S,{translateX:n.x,translateY:n.y});break;case's
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]).StyleSheet.create({videoTranformedView:{flex:1},videoTransformedViewContainer:{overflow:'hidden'},video:{flex:1}});e.default=o},900,[15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),l=t(r(d[2])),f=t(r(d[3])),n=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),s=t(r(d[7])),v=r(d[8]),h=r(d[9]),p=t(r(d[10])),y=t(r(d[11])),_=(function(t){function h(){return(0,u.default)(this,h),(0,f.default)(this,(0,n.default)(h).apply(this,arguments))}return(0,c.default)(h,t),(0,l.default)(h,[{key:"render",value:function(){return s.default.createElement(v.View,{style:y.default.video},(0,o.default)((0,n.default)(h.prototype),"render",this).call(this))}}]),h})(p.default),b=(0,h.connect)()(_);e.default=b},901,[3,4,5,6,9,46,10,59,15,443,902,900]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=o(r(d[2])),l=o(r(d[3])),s=o(r(d[4])),u=o(r(d[5])),p=o(r(d[6])),c=o(r(d[7])),f=t(r(d[8])),h=r(d[9]),v=r(d[10]),k=r(d[11]),V=(function(t){function o(t){var l;return(0,n.default)(this,o),(l=(0,s.default)(this,(0,u.default)(o).call(this,t)))._onVideoPlaying=l._onVideoPlaying.bind((0,c.default)((0,c.default)(l))),l}return(0,p.default)(o,t),(0,l.default)(o,[{key:"render",value:function(){var t,o=this.props.videoTrack||null;this.props.waitForVideoStarted&&o?(0,v.shouldRenderVideoTrack)(o,!0)?t=!0:(0,v.shouldRenderVideoTrack)(o,!1)&&!o.videoStarted&&(t=!0):t=(0,v.shouldRenderVideoTrack)(o,!1);var n=t&&o?o.jitsiTrack.getOriginalStream():null,l=this.props.zoomEnabled&&n&&o&&'desktop'===o.videoType;return f.default.createElement(k.Video,{mirror:o&&o.mirror,onPlaying:this._onVideoPlaying,onPress:this.props.onPress,stream:n,zOrder:this.props.zOrder,zoomEnabled:l})}},{key:"_onVideoPlaying",value:function(){var t=this.props.videoTrack;t&&!t.videoStarted&&this.props.dispatch((0,h.trackVideoStarted)(t.jitsiTrack))}}]),o})(f.Component);e.default=V},902,[2,3,4,5,6,9,10,8,59,903,944,892]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},903,[904,940,941]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.createDesiredLocalTracks=function(){for(var t=arguments.length,n=new Array(t),c=0;c<t;c++)n[c]=arguments[c];return function(t,c){var o=c();if(0===n.length){var u=o['features/base/media'],f=u.audio,T=u.video;f.muted||n.push(s.MEDIA_TYPE.AUDIO),T.muted&~s.VIDEO_MUTISM_AUTHORITY.BACKGROUND||n.push(s.MEDIA_TYPE.VIDEO)}var E=(0,l.getLocalTracks)(o['features/base/tracks'],!0).map(function(t){return t.mediaType}),D=n.filter(function(t){return-1===E.indexOf(t)});D.length&&t(A({devices:D}))}},e.createLocalTracksA=A,e.destroyLocalTracks=function(){return function(t,n){I(n).then(function(){return t(S(n()['features/base/tracks'].filter(function(t){return t.local}).map(function(t){return t.jitsiTrack})))})}},e.noDataFromSource=D,e.showNoDataFromSourceVideoError=k,e.toggleScreensharing=function(){return{type:T.TOGGLE_SCREENSHARING}},e.replaceLocalTrack=function(t,c,o){return function(u,s){return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:if(o||(o=s()['features/base/conference'].conference),!o){f.next=4;break}return f.next=4,n.default.awrap(o.replaceTrack(t,c));case 4:return f.abrupt("return",u(v(t,c)));case 5:case"end":return f.stop()}},null,this)}},e.trackAdded=_,e.trackMutedChanged=p,e.trackNoDataFromSourceNotificationInfoChanged=y,e.trackRemoved=R,e.trackVideoStarted=function(t){return{type:T.TRACK_UPDATED,track:{jitsiTrack:t,videoStarted:!0}}},e.trackVideoTypeChanged=C,e._disposeAndRemoveTracks=S,e.setNoSrcDataNotificationUid=P;var n=t(r(d[1])),c=r(d[2]),o=r(d[3]),u=r(d[4]),s=r(d[5]),f=r(d[6]),T=r(d[7]),l=r(d[8]),E=t(r(d[9]));function A(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(n,c){var o=t.devices||[s.MEDIA_TYPE.AUDIO,s.MEDIA_TYPE.VIDEO],u={dispatch:n,getState:c},f=function(o){if((0,l.getLocalTrack)(c()['features/base/tracks'],o,!0))throw new Error("Local track for "+o+" already exists");var f=(0,l.createLocalTracksF)({cameraDeviceId:t.cameraDeviceId,devices:[o],facingMode:t.facingMode||s.CAMERA_FACING_MODE.USER,micDeviceId:t.micDeviceId},!1,u).then(function(t){if(1!==t.length)throw new Error("Expected exactly 1 track, but was given "+t.length+" tracks for device: "+o+".");return f.canceled?O(t).then(function(){return n(M(o))}):n(_(t[0]))},function(t){return n(f.canceled?M(o):h(t,o))});f.cancel=function(){return f.canceled=!0,f},n({type:T.TRACK_WILL_CREATE,track:{gumProcess:f,local:!0,mediaType:o}})},E=o,A=Array.isArray(E),D=0;for(E=A?E:E["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var k;if(A){if(D>=E.length)break;k=E[D++]}else{if((D=E.next()).done)break;k=D.value}f(k)}}}function D(t){return{type:T.TRACK_NO_DATA_FROM_SOURCE,track:t}}function k(t){return function(n,c){var u,s=(0,l.getTrackByJitsiTrack)(c()['features/base/tracks'],t);if(s){if(s.isReceivingData)u=void 0;else{var f=(0,o.showErrorNotification)({descriptionKey:'dialog.cameraNotSendingData',titleKey:'dialog.cameraNotSendingDataTitle'});n(f),u={uid:f.uid}}n(y(t,u))}}}function v(t,n){return function(o){return(t?o(S([t])):Promise.resolve()).then(function(){if(n){var t=n.isVideoTrack()?s.setVideoMuted:s.setAudioMuted,u=n.isMuted();return(0,c.sendAnalytics)((0,c.createTrackMutedEvent)(n.getType(),'track.replaced',u)),E.default.log("Replace "+n.getType()+" track - "+(u?'muted':'unmuted')),o(t(u))}}).then(function(){if(n)return o((t=[n],function(n){return Promise.all(t.map(function(t){return n(_(t))}))}));var t})}}function _(t){return function(n,c){t.on(u.JitsiTrackEvents.TRACK_MUTE_CHANGED,function(){return n(p(t))}),t.on(u.JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED,function(c){return n(C(t,c))});var l,E,A,v=t.isLocal(),_=t.getType();if(v){n(P());var y=(0,f.getLocalParticipant)(c);if(y&&(A=y.id),l=t.isReceivingData(),t.on(u.JitsiTrackEvents.NO_DATA_FROM_SOURCE,function(){return n(D({jitsiTrack:t}))}),!l)if(_===s.MEDIA_TYPE.AUDIO){var R=(0,o.showNotification)({descriptionKey:'dialog.micNotSendingData',titleKey:'dialog.micNotSendingDataTitle'});n(R),n(P(R.uid)),E={uid:R.uid}}else{E={timeout:setTimeout(function(
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},905,[906,907]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.createApiEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,attributes:n,source:'jitsi-meet-api'}},e.createAudioOnlyChangedEvent=function(t){return{action:"audio.only."+(t?'enabled':'disabled')}},e.createConnectionEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t,actionSubject:'connection',attributes:n}},e.createCalendarClickedEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'calendar',type:o}},e.createCalendarSelectedEvent=function(){return{action:'selected',actionSubject:'calendar.selected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},source:'calendar',type:o}},e.createCalendarConnectedEvent=function(){return{action:'calendar.connected',actionSubject:'calendar.connected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}}},e.createRecentClickedEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'recent.list',type:o}},e.createChromeExtensionBannerEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:t?'install':'cancel',attributes:n,source:'chrome.extension.banner',type:o}},e.createRecentSelectedEvent=function(){return{action:'selected',actionSubject:'recent.list.selected',attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},source:'recent.list',type:o}},e.createDeepLinkingPageEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,source:'deepLinkingPage',attributes:c}},e.createDeviceChangedEvent=function(t,n){return{action:'device.changed',attributes:{device_type:n,media_type:t}}},e.createE2EEEvent=function(t){return{action:t,actionSubject:'e2ee'}},e.createFeedbackOpenEvent=function(){return{action:'feedback.opened'}},e.createInviteDialogEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:t,actionSubject:n,attributes:c,source:'inviteDialog'}},e.createNetworkInfoEvent=function(t){var n=t.isOnline,c=t.networkType,o=t.details,u={isOnline:n};return c&&(u.networkType=c),o&&(u.details=o),{action:'network.info',attributes:u}},e.createOfferAnswerFailedEvent=function(){return{action:'offer.answer.failure'}},e.createPageReloadScheduledEvent=function(t,c,o){return{action:'page.reload.scheduled',attributes:(0,n.default)({reason:t,timeout:c},o)}},e.createPinnedEvent=function(t,n,o){return{type:c,action:t,actionSubject:'participant',objectType:'participant',objectId:n,attributes:o}},e.createProfilePanelButtonEvent=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{action:'clicked',actionSubject:t,attributes:n,source:'profile.panel',type:o}},e.createRecordingDialogEvent=function(t,n){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{action:'clicked',actionSubject:n,attributes:c,source:t+".recording.dialog",type:o}},e.createLiveStreamingDialogEvent=function(t,n){return{action:'clicked',actionSubject:n,source:t+".liveStreaming.dialog",type:o}},e.createLocalTracksDurationEvent=function(t){var n=t.audio,c=t.video,o=t.conference,u=c.camera,l=c.desktop;return{action:'local.tracks.durations',attributes:{audio:n.value,camera:u.value,conference:o.value,desktop:l.value}}},e.createRecordingEvent=function(t,n,c){return{action:t,actionSubject:"recording."+n,attributes:{value:c}}},e.createRejoinedEvent=function(t){var n=t.url,c=t.lastConferenceDuration,o=t.timeSinceLeft;return{action:'rejoined',attributes:{lastConferenceDuration:c,timeSinceLeft:o,url:n}}},e.createRemoteMuteConfirmedEvent=function(t){return{action:'clicked',actionSubject:'remote.mute.dialog.confirm.button',attributes:{participant_id:t},source:'remote.mute.dialog',type:o}},e.createRemoteVideoMenuButtonEvent=function(t,n){return{action:'clicked',actionSubject:t,at
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.sendAnalytics=function(t){try{u.analytics.sendEvent(t)}catch(t){p.default.warn("Error sending analytics event: "+t)}},e.getAmplitudeIdentity=function(){return u.analytics.amplitudeIdentityProps},e.resetAnalytics=function(){u.analytics.reset()},e.createHandlers=function(t){var n=t.getState;if((0,f.getJitsiMeetGlobalNS)().analyticsHandlers=[],window.analyticsHandlers=[],!(0,u.isAnalyticsEnabled)(n))return Promise.resolve([]);var s=n(),l=s['features/base/config'],c=s['features/base/connection'].locationURL,v=c?c.host:'',b=l.analytics,w=void 0===b?{}:b,A=l.deploymentInfo,P=w.amplitudeAPPKey,E=w.blackListedEvents,I=w.scriptURLs,k=w.googleAnalyticsTrackingId,S=w.matomoEndpoint,H=w.matomoSiteID,N=w.whiteListedEvents,x=s['features/base/jwt'],L=x.group,M=x.user,_={amplitudeAPPKey:P,blackListedEvents:E,envType:A&&A.envType||'dev',googleAnalyticsTrackingId:k,matomoEndpoint:S,matomoSiteID:H,group:L,host:v,product:A&&A.product,subproduct:A&&A.environment,user:M&&M.id,version:u.default.version,whiteListedEvents:N},C=[];try{var R=new y.AmplitudeHandler(_);u.analytics.amplitudeIdentityProps=R.getIdentityProps(),C.push(R)}catch(t){}try{var T=new y.MatomoHandler(_);C.push(T)}catch(t){}return h(I,_).then(function(t){if(C.push.apply(C,(0,o.default)(t)),0===C.length)throw new Error('No analytics handlers created!');return C}).catch(function(t){return u.analytics.dispose(),0!==C.length&&p.default.error(t),[]})},e.initAnalytics=function(t,n){var o=t.getState;if(!(0,u.isAnalyticsEnabled)(o)||0===n.length)return;var f=o(),y=f['features/base/config'],p=y.deploymentInfo,h=f['features/base/jwt'],b=h.group,w=h.server,A=f['features/base/conference'].room,P={};w&&(P.server=w);b&&(P.group=b);if(P.appName=(0,l.getName)(),P.websocket='ReactNative'!==navigator.product&&'string'==typeof y.websocket,P.externalApi='number'==typeof s.API_ID,P.inIframe=v(),p)for(var E in p)p.hasOwnProperty(E)&&(P[E]=p[E]);if(u.analytics.addPermanentProperties(P),u.analytics.setConferenceName(A),u.analytics.setAnalyticsHandlers(n),!(0,c.isMobileBrowser)()&&u.browser.isChrome()){var I=f['features/base/config'].chromeExtensionBanner;(0,c.checkChromeExtensionsInstalled)(I).then(function(t){(null==t?void 0:t.length)&&u.analytics.addPermanentProperties({hasChromeExtension:t.some(function(t){return t})})})}};var o=n(r(d[2])),s=r(d[3]),l=r(d[4]),c=r(d[5]),u=t(r(d[6])),f=r(d[7]),y=r(d[8]),p=n(r(d[9]));function v(){if('ReactNative'===navigator.product)return!1;try{return window.self!==window.top}catch(t){return!0}}function h(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,s=[],l=function(t){s.push((0,f.loadScript)(t).then(function(){return{type:'success'}},function(n){return{type:'error',error:n,url:t}}))},c=t,u=Array.isArray(c),y=0;for(c=u?c:c["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(u){if(y>=c.length)break;v=c[y++]}else{if((y=c.next()).done)break;v=y.value}l(v)}return Promise.all(s).then(function(t){var s=t,l=Array.isArray(s),c=0;for(s=l?s:s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var u;if(l){if(c>=s.length)break;u=s[c++]}else{if((c=s.next()).done)break;u=c.value}var y=u;'error'===y.type&&p.default.warn("Failed to load "+y.url+": "+y.error)}var v=[],h=(0,o.default)((0,f.getJitsiMeetGlobalNS)().analyticsHandlers).concat((0,o.default)(window.analyticsHandlers)),b=Array.isArray(h),w=0;for(h=b?h:h["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var A;if(b){if(w>=h.length)break;A=h[w++]}else{if((w=h.next()).done)break;A=w.value}var P=A;try{v.push(new P(n))}catch(t){p.default.warn("Error creating analytics handler: "+t)}}return p.default.debug("Loaded "+v.length+" analytics handlers"),v})}},907,[2,3,31,908,909,931,879,506,932,939]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ENDPOINT_TEXT_MESSAGE_NAME=e.API_ID=void 0;var _=(0,r(d[0]).parseURLParams)(window.location).jitsi_meet_external_api_id;e.API_ID=_;e.ENDPOINT_TEXT_MESSAGE_NAME='endpoint-text-message'},908,[514]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getDefaultURL=function(t){var o=(0,n.toState)(t);return(0,u.getServerURL)(o)},e.getName=function(){return t.NativeModules.AppInfo.name},e.getSdkBundlePath=function(){return t.NativeModules.AppInfo.sdkBundlePath};var t=r(d[0]),n=r(d[1]),u=r(d[2])},909,[15,443,910]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},910,[911,912,913,914]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.updateSettings=function(n){return{type:t.SETTINGS_UPDATED,settings:n}};var t=r(d[0])},911,[912]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SETTINGS_UPDATED=void 0;e.SETTINGS_UPDATED='SETTINGS_UPDATED'},912,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_SERVER_URL=void 0;e.DEFAULT_SERVER_URL='https://meet.jit.si'},913,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var t={handleCallIntegrationChange:!0,handleCrashReportingChange:!0};e.handleCallIntegrationChange=function(n){c.setUseConnectionService&&c.setUseConnectionService(!n)},e.handleCrashReportingChange=function(n){l.default.setName('jitsi-default-preferences').then(l.default.set('isCrashReportingDisabled',n.toString()))};var o=r(d[1]),l=n(r(d[2])),s=r(d[3]);Object.keys(s).forEach(function(n){"default"!==n&&"__esModule"!==n&&(Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return s[n]}}))});var c=o.NativeModules.AudioMode},914,[3,15,915,916]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]).NativeModules.RNDefaultPreference;e.default=t},915,[15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getPropertyValue=function(t,n,l){l=(0,c.default)({config:!0,jwt:!0,settings:!0,urlParams:!0},l);var f=(0,u.toState)(t);if(l.jwt){var o=f['features/base/jwt'][n];if(void 0!==o)return o[n]}if(l.urlParams&&-1!==s.CONFIG_WHITELIST.indexOf(n)){var b=(0,v.parseURLParams)(f['features/base/connection'].locationURL),D=b["config."+n];if(void 0!==D)return D}if(l.settings){var S=f['features/base/settings'][n];if(void 0!==S)return S}if(l.config){var I=f['features/base/config'][n];if(void 0!==I)return I}return},e.getServerURL=function(t){return(0,u.toState)(t)['features/base/settings'].serverURL||n.DEFAULT_SERVER_URL},e.getUserSelectedCameraDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedCameraDeviceId,n=s.userSelectedCameraDeviceLabel;return l({availableDevices:c['features/base/devices'].availableDevices.videoInput,matchRegex:/\s#\d*(?!.*\s#\d*)/,userSelectedDeviceId:v,userSelectedDeviceLabel:n,replacement:''})},e.getUserSelectedMicDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedMicDeviceId,n=s.userSelectedMicDeviceLabel;return l({availableDevices:c['features/base/devices'].availableDevices.audioInput,matchRegex:/\s\(\d*-\s(?!.*\s\(\d*-\s)/,userSelectedDeviceId:v,userSelectedDeviceLabel:n,replacement:' ('})},e.getUserSelectedOutputDeviceId=function(t){var c=(0,u.toState)(t),s=c['features/base/settings'],v=s.userSelectedAudioOutputDeviceId,n=s.userSelectedAudioOutputDeviceLabel;return l({availableDevices:c['features/base/devices'].availableDevices.audioOutput,matchRegex:void 0,userSelectedDeviceId:v,userSelectedDeviceLabel:n,replacement:void 0})};var c=t(r(d[1])),s=r(d[2]),u=r(d[3]),v=r(d[4]),n=r(d[5]);function l(t){var c=t.availableDevices,s=t.matchRegex,u=t.userSelectedDeviceId,v=t.userSelectedDeviceLabel,n=t.replacement;if(!v||!u)return u;if(c.find(function(t){return t.deviceId===u}))return u;var l=s?v.replace(s,n):v,f=c.find(function(t){var c=t.label;if(!c)return!1;if(l===c)return!0;var u=c.replace(s,n);return l===u});return f?f.deviceId:u}},916,[3,53,917,443,506,913]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={CONFIG_WHITELIST:!0};Object.defineProperty(e,"CONFIG_WHITELIST",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var c=r(d[2]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=t(r(d[3])),f=r(d[4]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}}))})},917,[3,918,922,926,924]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.updateConfig=function(n){return{type:c.UPDATE_CONFIG,config:n}},e.configWillLoad=function(n,o){return{type:c.CONFIG_WILL_LOAD,locationURL:n,room:o}},e.loadConfigError=function(n,o){return{type:c.LOAD_CONFIG_ERROR,error:n,locationURL:o}},e.setConfig=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(o,t){var f=t()['features/base/connection'].locationURL;f&&(0,u.setConfigFromURLParams)(n,window.interfaceConfig,window.loggingConfig,f),o({type:c.SET_CONFIG,config:n})}},e.storeConfig=function(c,u){return function(s){var _=!1;try{void 0!==window.config&&window.config===u||(n.jitsiLocalStorage.setItem(f._CONFIG_STORE_PREFIX+"/"+c,JSON.stringify(u)),_=!0)}catch(n){}if(_)try{s((0,o.addKnownDomains)((0,t.parseURIString)(c).host))}catch(n){}return _}};var n=r(d[0]),o=r(d[1]),t=r(d[2]),c=r(d[3]),f=r(d[4]),u=r(d[5])},918,[483,919,506,922,923,924]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},919,[920,921]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.addKnownDomains=function(o){return{type:n.ADD_KNOWN_DOMAINS,knownDomains:'string'==typeof o?[o]:o}};var n=r(d[0])},920,[921]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ADD_KNOWN_DOMAINS=void 0;e.ADD_KNOWN_DOMAINS='ADD_KNOWN_DOMAINS'},921,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UPDATE_CONFIG=e.SET_CONFIG=e.LOAD_CONFIG_ERROR=e.CONFIG_WILL_LOAD=void 0;e.CONFIG_WILL_LOAD='CONFIG_WILL_LOAD';e.LOAD_CONFIG_ERROR='LOAD_CONFIG_ERROR';e.SET_CONFIG='SET_CONFIG';e.UPDATE_CONFIG='UPDATE_CONFIG'},922,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._CONFIG_STORE_PREFIX=void 0;e._CONFIG_STORE_PREFIX='config.js'},923,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={_cleanupConfig:!0};e._cleanupConfig=function(t){t.analytics.scriptURLs=[],l.NativeModules.AppInfo.LIBRE_BUILD&&(delete t.analytics.amplitudeAPPKey,delete t.analytics.googleAnalyticsTrackingId,delete t.callStatsID,delete t.callStatsSecret)};var l=r(d[0]),n=r(d[1]);Object.keys(n).forEach(function(l){"default"!==l&&"__esModule"!==l&&(Object.prototype.hasOwnProperty.call(t,l)||Object.defineProperty(e,l,{enumerable:!0,get:function(){return n[l]}}))})},924,[15,925]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.createFakeConfig=function(t){var n=new URL(t);return{hosts:{domain:n.hostname,muc:"conference."+n.hostname},bosh:t+"http-bind",clientNode:'https://jitsi.org/jitsi-meet',p2p:{enabled:!0}}},e.overrideConfigJSON=p,e.restoreConfig=function(t){var o=u._CONFIG_STORE_PREFIX+"/"+t,f=n.jitsiLocalStorage.getItem(o);if(f)try{return JSON.parse(f)||void 0}catch(t){n.jitsiLocalStorage.removeItem(o)}return},e.setConfigFromURLParams=function(t,n,o,c){var u=(0,f.parseURLParams)(c),l={};t&&(l.config={}),n&&(l.interfaceConfig={}),o&&(l.loggingConfig={});for(var s=Object.keys(u),v=0;v<s.length;v++){for(var y=s[v],b=l,h=y.split('.'),C=h.pop(),O=h,j=Array.isArray(O),S=0,O=j?O:O["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var k;if(j){if(S>=O.length)break;k=O[S++]}else{if((S=O.next()).done)break;k=S.value}var _=k;b=b[_]=b[_]||{}}b[C]=u[y]}p(t,n,o,l)},Object.defineProperty(e,"getRoomName",{enumerable:!0,get:function(){return v.default}});var n=r(d[1]),o=t(r(d[2])),f=r(d[3]),c=t(r(d[4])),u=r(d[5]),l=t(r(d[6])),s=t(r(d[7])),v=t(r(d[8]));function p(t,n,f,c){for(var u=Object.keys(c),l=0;l<u.length;l++){var v=u[l],p=void 0;if('config'===v?p=t:'interfaceConfig'===v?p=n:'loggingConfig'===v&&(p=f),p){var b=y(v,c[v]);o.default.isEmpty(b)||(s.default.info("Extending "+v+" with: "+JSON.stringify(b)),o.default.mergeWith(p,b,function(t,n){return Array.isArray(t)?n:void 0}))}}}function y(t,n){return'interfaceConfig'===t?o.default.pick(n,l.default):'config'===t?o.default.pick(n,c.default):n}},925,[3,483,445,506,926,923,928,929,930]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=['_desktopSharingSourceDevice','_peerConnStatusOutOfLastNTimeout','_peerConnStatusRtcMuteTimeout','abTesting','analytics.disabled','audioLevelsInterval','autoRecord','autoRecordToken','avgRtpStatsN','callDisplayName','callFlowsEnabled','callHandle','callStatsConfIDNamespace','callStatsID','callStatsSecret','callUUID','channelLastN','constraints','brandingRoomAlias','debug','debugAudioLevels','defaultLanguage','desktopSharingFrameRate','desktopSharingSources','disable1On1Mode','disableAEC','disableAGC','disableAP','disableAudioLevels','disableDeepLinking','disableH264','disableHPF','disableInviteFunctions','disableLocalVideoFlip','disableNS','disableRemoteControl','disableRemoteMute','disableRtx','disableSimulcast','disableSuspendVideo','disableThirdPartyRequests','displayJids','doNotStoreRoom','e2eping','enableDisplayNameInStats','enableEmailInStats','enableIceRestart','enableInsecureRoomNameWarning','enableLayerSuspension','enableLipSync','enableOpusRed','enableRemb','enableScreenshotCapture','enableTalkWhileMuted','enableNoAudioDetection','enableNoisyMicDetection','enableTcc','enableAutomaticUrlCopy','etherpad_base','failICE','feedbackPercentage','fileRecordingsEnabled','firefox_fake_device','forceJVB121Ratio','gatherStats','googleApiApplicationClientID','hiddenDomain','hideLobbyButton','hosts','iAmRecorder','iAmSipGateway','iceTransportPolicy','ignoreStartMuted','liveStreamingEnabled','localRecording','maxFullResolutionParticipants','minParticipants','nick','openBridgeChannel','opusMaxAverageBitrate','p2p','pcStatsInterval','preferH264','prejoinPageEnabled','requireDisplayName','remoteVideoMenu','roomPasswordNumberOfDigits','resolution','startAudioMuted','startAudioOnly','startBitrate','startScreenSharing','startSilent','startVideoMuted','startWithAudioMuted','startWithVideoMuted','stereo','subject','testing','useStunTurn','useTurnUdp','videoQuality.persist','webrtcIceTcpDisable','webrtcIceUdpDisable'].concat(l.default);e.default=n},926,[3,927]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default=[]},927,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default=['AUDIO_LEVEL_PRIMARY_COLOR','AUDIO_LEVEL_SECONDARY_COLOR','AUTO_PIN_LATEST_SCREEN_SHARE','CLOSE_PAGE_GUEST_HINT','CONNECTION_INDICATOR_AUTO_HIDE_ENABLED','CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT','CONNECTION_INDICATOR_DISABLED','DEFAULT_BACKGROUND','DISABLE_PRESENCE_STATUS','DISABLE_JOIN_LEAVE_NOTIFICATIONS','DEFAULT_LOCAL_DISPLAY_NAME','DEFAULT_REMOTE_DISPLAY_NAME','DISABLE_DOMINANT_SPEAKER_INDICATOR','DISABLE_FOCUS_INDICATOR','DISABLE_PRIVATE_MESSAGES','DISABLE_RINGING','DISABLE_TRANSCRIPTION_SUBTITLES','DISABLE_VIDEO_BACKGROUND','DISPLAY_WELCOME_PAGE_CONTENT','ENABLE_DIAL_OUT','ENABLE_FEEDBACK_ANIMATION','ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT','FILM_STRIP_MAX_HEIGHT','GENERATE_ROOMNAMES_ON_WELCOME_PAGE','HIDE_INVITE_MORE_HEADER','INDICATOR_FONT_SIZES','INITIAL_TOOLBAR_TIMEOUT','LANG_DETECTION','LIVE_STREAMING_HELP_LINK','LOCAL_THUMBNAIL_RATIO','MAXIMUM_ZOOMING_COEFFICIENT','NATIVE_APP_NAME','OPTIMAL_BROWSERS','PHONE_NUMBER_REGEX','PROVIDER_NAME','RECENT_LIST_ENABLED','REMOTE_THUMBNAIL_RATIO','SETTINGS_SECTIONS','SHOW_CHROME_EXTENSION_BANNER','SHOW_DEEP_LINKING_IMAGE','SHOW_POWERED_BY','SUPPORT_URL','TILE_VIEW_MAX_COLUMNS','TOOLBAR_ALWAYS_VISIBLE','TOOLBAR_BUTTONS','TOOLBAR_TIMEOUT','UNSUPPORTED_BROWSERS','VERTICAL_FILMSTRIP','VIDEO_LAYOUT_FIT','VIDEO_QUALITY_LABEL_DISABLED','filmStripOnly']},928,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/config');e.default=t},929,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=window.location.pathname,o=t.substring(t.lastIndexOf('/')+1)||void 0;return(0,n.getBackendSafeRoomName)(o)};var n=r(d[0])},930,[506]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.isMobileBrowser=function(){return'android'===o.default.OS||'ios'===o.default.OS},e.checkChromeExtensionsInstalled=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=function(n){return new Promise(function(o){var t=new Image;t.src="chrome-extension://"+n.id+"/"+n.path,t.onload=function(){o(!0)},t.onerror=function(){o(!1)}})},t=function(n){return o(n)};return Promise.all((n.chromeExtensionsInfo||[]).map(function(n){return t(n)}))};var o=n(r(d[1]))},931,[3,529]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AmplitudeHandler",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"MatomoHandler",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},932,[3,933,938]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),p=t(r(d[6])),c=r(d[7]),f=(function(t){function p(t){var s;(0,n.default)(this,p),s=(0,u.default)(this,(0,l.default)(p).call(this,t));var o=t.amplitudeAPPKey,f=t.host,I=t.user;if(!o)throw new Error('Failed to initialize Amplitude handler, no APP key');return s._enabled=!0,s._amplitudeOptions={host:f},c.amplitude.getInstance(s._amplitudeOptions).init(o,void 0,{includeReferrer:!0}),(0,c.fixDeviceID)(c.amplitude.getInstance(s._amplitudeOptions)),I&&c.amplitude.getInstance(s._amplitudeOptions).setUserId(I),s}return(0,o.default)(p,t),(0,s.default)(p,[{key:"setUserProperties",value:function(t){this._enabled&&c.amplitude.getInstance(this._amplitudeOptions).setUserProperties(t)}},{key:"sendEvent",value:function(t){this._shouldIgnore(t)||c.amplitude.getInstance(this._amplitudeOptions).logEvent(this._extractName(t),t)}},{key:"getIdentityProps",value:function(){return{sessionId:c.amplitude.getInstance(this._amplitudeOptions).getSessionId(),deviceId:c.amplitude.getInstance(this._amplitudeOptions).options.deviceId,userId:c.amplitude.getInstance(this._amplitudeOptions).options.userId}}}]),p})(p.default);e.default=f},933,[3,4,5,6,9,10,934,935]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),c=(function(){function t(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,s.default)(this,t),this._enabled=!1,this._whiteListedEvents=u.whiteListedEvents,this._blackListedEvents=(0,n.default)(u.blackListedEvents||[]).concat(['e2e_rtt','rtp.stats','rtt.by.region','available.device','stream.switch.delay','ice.state.changed','ice.duration','peer.conn.status.duration'])}return(0,u.default)(t,[{key:"_extractName",value:function(t){if('page'===t.type)return t.name;var n=t.action,s=t.actionSubject,u=t.source,c=n;return s&&s!==n&&(c=s+"."+n),u&&u!==n&&(c=u+"."+c),c}},{key:"_shouldIgnore",value:function(t){if(!t||!this._enabled)return!0;var n=this._extractName(t);return Array.isArray(this._whiteListedEvents)?-1===this._whiteListedEvents.indexOf(n):!!Array.isArray(this._blackListedEvents)&&-1!==this._blackListedEvents.indexOf(n)}}]),t})();e.default=c},934,[3,31,4,5]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={amplitude:!0};Object.defineProperty(e,"amplitude",{enumerable:!0,get:function(){return u.default}});var u=t(r(d[1])),o=r(d[2]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))})},935,[3,936,937]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n,s=t(r(d[1])),o=t(r(d[2])),u=r(d[3]).NativeModules.Amplitude,c=(function(){function t(n){if((0,s.default)(this,t),!u)throw new Error('Amplitude analytics is not supported');this._instanceName=n}return(0,o.default)(t,[{key:"init",value:function(t){u.init(this._instanceName,t)}},{key:"setUserId",value:function(t,n,s,o){u.setUserId(this._instanceName,t)}},{key:"setUserProperties",value:function(t){u.setUserProperties(this._instanceName,t)}},{key:"logEvent",value:function(t,n){u.logEvent(this._instanceName,t,JSON.stringify(n))}}]),t})(),l={},f={getInstance:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=t.host,o=void 0===s?'':s,u=t.instanceName,f=void 0===u?'':u,v=o;return''!==f&&(v+="-"+f),''===v?n=n||new c:l[v]=l[v]||new c(v)}};e.default=f},936,[3,4,5,15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.fixDeviceID=function(n){}},937,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),c=r(d[6]),f=(function(t){function c(t){var o;if((0,n.default)(this,c),(o=(0,s.default)(this,(0,u.default)(c).call(this,t)))._userProperties={},!t.matomoEndpoint)throw new Error('Failed to initialize Matomo handler: no endpoint defined.');if(!t.matomoSiteID)throw new Error('Failed to initialize Matomo handler: no site ID defined.');return o._enabled=!0,o._initMatomo(t),o}return(0,l.default)(c,t),(0,o.default)(c,[{key:"_initMatomo",value:function(t){var n=window._paq||[];window._paq=n,n.push(['trackPageView']),n.push(['enableLinkTracking']),(function(){var o=t.matomoEndpoint.endsWith('/')?t.matomoEndpoint:t.matomoEndpoint+"/";n.push(['setTrackerUrl',o+"matomo.php"]),n.push(['setSiteId',t.matomoSiteID]);var s=document,u=s.createElement('script'),l=s.getElementsByTagName('script')[0];u.type='text/javascript',u.async=!0,u.defer=!0,u.src=o+"matomo.js",l.parentNode.insertBefore(u,l)})()}},{key:"_extractValue",value:function(t){var n=t&&t.attributes&&t.attributes.value;return Math.round(parseFloat(n))}},{key:"setUserProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._enabled){var n=['user_agent','callstats_name','browser_name'];Object.keys(t).filter(function(t){return-1===n.indexOf(t)}).forEach(function(n,o){_paq.push(['setCustomVariable',1+o,n,t[n],'page'])}),Object.keys(t).filter(function(t){return-1!==n.indexOf(t)}).forEach(function(n,o){_paq.push(['setCustomVariable',1+o,n,t[n],'visit'])})}}},{key:"sendEvent",value:function(t){if(!this._shouldIgnore(t)){var n=this._extractValue(t),o=['trackEvent','jitsi-meet',this._extractName(t)];isNaN(n)||o.push(n),_paq.push(o)}}}]),c})(t(r(d[7])).default);e.default=f;var p=(0,c.getJitsiMeetGlobalNS)();p.analyticsHandlers=p.analyticsHandlers||[],p.analyticsHandlers.push(f)},938,[3,4,5,6,9,10,506,934]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/analytics');e.default=t},939,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TRACK_WILL_CREATE=e.TRACK_UPDATED=e.TRACK_REMOVED=e.TRACK_NO_DATA_FROM_SOURCE=e.TRACK_CREATE_ERROR=e.TRACK_CREATE_CANCELED=e.TRACK_ADDED=e.TOGGLE_SCREENSHARING=e.SET_NO_SRC_DATA_NOTIFICATION_UID=void 0;e.SET_NO_SRC_DATA_NOTIFICATION_UID='SET_NO_SRC_DATA_NOTIFICATION_UID';e.TOGGLE_SCREENSHARING='TOGGLE_SCREENSHARING';e.TRACK_ADDED='TRACK_ADDED';e.TRACK_CREATE_CANCELED='TRACK_CREATE_CANCELED';e.TRACK_CREATE_ERROR='TRACK_CREATE_ERROR';e.TRACK_NO_DATA_FROM_SOURCE='TRACK_NO_DATA_FROM_SOURCE';e.TRACK_REMOVED='TRACK_REMOVED';e.TRACK_UPDATED='TRACK_UPDATED';e.TRACK_WILL_CREATE='TRACK_WILL_CREATE'},940,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.createLocalPresenterTrack=function(t,n){var f,l,v,T,E,k,p;return c.default.async(function(P){for(;;)switch(P.prev=P.next){case 0:return f=t.cameraDeviceId,l=5,v=[180,270,360,540,720].find(function(t){return n/l<t}),T={video:{aspectRatio:1.3333333333333333,height:{ideal:v}}},P.next=7,c.default.awrap(u.default.createLocalTracks({cameraDeviceId:f,constraints:T,devices:['video']}));case 7:return E=P.sent,k=(0,o.default)(E,1),(p=k[0]).type=s.MEDIA_TYPE.PRESENTER,P.abrupt("return",p);case 12:case"end":return P.stop()}},null,this)},e.createLocalTracksF=T,e.createPrejoinTracks=function(){var t={},n=['audio'],c=!1,o=APP.store.getState()['features/base/settings'],u=o.startAudioOnly,f=o.startWithAudioMuted,l=o.startWithVideoMuted;f&&APP.store.dispatch((0,s.setAudioMuted)(!0));l||u||(n.push('video'),c=!0);return{tryCreateLocalTracks:T({devices:n},!0).catch(function(n){return c?(t.audioAndVideoError=n,T({devices:['audio']},!0)):c?void v.default.error('Should never happen'):(t.audioOnlyError=n,[])}).catch(function(n){return t.audioOnlyError=n,c?T({devices:['video']},!0):[]}).catch(function(n){return c||v.default.error('The impossible just happened',n),t.videoOnlyError=n,[]}),errors:t}},e.getLocalAudioTrack=E,e.getLocalTrack=k,e.getLocalTracks=p,e.getLocalVideoTrack=P,e.getLocalVideoType=function(t){return k(t,s.MEDIA_TYPE.PRESENTER)?s.MEDIA_TYPE.PRESENTER:s.MEDIA_TYPE.VIDEO},e.getLocalJitsiVideoTrack=function(t){var n=P(t['features/base/tracks']);return null==n?void 0:n.jitsiTrack},e.getLocalJitsiAudioTrack=function(t){var n=E(t['features/base/tracks']);return null==n?void 0:n.jitsiTrack},e.getTrackByMediaTypeAndParticipant=h,e.getTrackByJitsiTrack=function(t,n){return t.find(function(t){return t.jitsiTrack===n})},e.getTracksByMediaType=function(t,n){return t.filter(function(t){return t.mediaType===n})},e.isLocalVideoTrackMuted=function(t){var n=k(t,s.MEDIA_TYPE.PRESENTER),c=k(t,s.MEDIA_TYPE.VIDEO);if(n)return I(t,s.MEDIA_TYPE.PRESENTER);if(c)return'camera'!==c.videoType||I(t,s.MEDIA_TYPE.VIDEO);return!0},e.isLocalTrackMuted=I,e.isRemoteTrackMuted=function(t,n,c){var o=h(t,n,c);return!o||o.muted},e.isUserInteractionRequiredForUnmute=function(t){return u.browser.isUserInteractionRequiredForUnmute()&&window&&window.self!==window.top&&!t['features/base/user-interaction'].interacted},e.setTrackMuted=function(t,n){if(n=Boolean(n),t.isMuted()===n)return Promise.resolve();var c=n?'mute':'unmute';return t[c]().catch(function(t){t.name!==u.JitsiTrackErrors.TRACK_IS_DISPOSED&&v.default.error("set track "+c+" failed",t)})};var c=n(r(d[2])),o=n(r(d[3])),u=t(r(d[4])),s=r(d[5]),f=r(d[6]),l=n(r(d[7])),v=n(r(d[8]));function T(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0,o=arguments.length>2?arguments[2]:void 0,s=n.cameraDeviceId,T=n.micDeviceId;if('undefined'!=typeof APP){o||(o=APP.store);var E=o.getState();void 0!==s&&null!==s||(s=(0,f.getUserSelectedCameraDeviceId)(E)),void 0!==T&&null!==T||(T=(0,f.getUserSelectedMicDeviceId)(E))}var k=o.getState(),p=k['features/base/config'],P=p.desktopSharingFrameRate,h=p.firefox_fake_device,I=p.resolution,D=null!=(t=n.constraints)?t:k['features/base/config'].constraints;return(0,l.default)(o).then(function(t){var o=t.filter(function(t){return Boolean(t)});return u.default.createLocalTracks({cameraDeviceId:s,constraints:D,desktopSharingFrameRate:P,desktopSharingSourceDevice:n.desktopSharingSourceDevice,desktopSharingSources:n.desktopSharingSources,devices:n.devices.slice(0),effects:o,firefox_fake_device:h,micDeviceId:T,resolution:I},c).catch(function(t){return v.default.error('Failed to create local tracks',n.devices,t),Promise.reject(t)})})}function E(t){return k(t,s.MEDIA_TYPE.AUDIO)}function k(t,n){return p(t,arguments.length>2&&void 0!==arguments[2]&&arguments[2]).find(function(t){return t.mediaType===n})}function p(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.filter(function(t){return t.local&&(t.jitsiTrack||n)})}f
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(n){return Promise.resolve([])}},942,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/tracks');e.default=t},943,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isAudioMuted=function(u){return Boolean((0,t.toState)(u)['features/base/media'].audio.muted)},e.isVideoMutedByAudioOnly=function(t){return o(t,u.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY)},e.isVideoMutedByUser=function(t){return o(t,u.VIDEO_MUTISM_AUTHORITY.USER)},e.shouldRenderVideoTrack=function(t,u){return t&&!t.muted&&(!u||t.videoStarted)};var t=r(d[0]),u=r(d[1]);function o(u,o){var n=(0,t.toState)(u)['features/base/media'].video.muted;return Boolean(n&o)}},944,[443,890]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.PARTICIPANT_ROLE=e.PARTICIPANT_LEFT_SOUND_ID=e.PARTICIPANT_JOINED_SOUND_ID=e.MAX_DISPLAY_NAME_LENGTH=e.LOCAL_PARTICIPANT_DEFAULT_ID=e.JIGASI_PARTICIPANT_ICON=e.DEFAULT_AVATAR_RELATIVE_PATH=void 0;var A=r(d[0]);e.DEFAULT_AVATAR_RELATIVE_PATH='images/avatar.png';var I=A.IconPhone;e.JIGASI_PARTICIPANT_ICON=I;e.LOCAL_PARTICIPANT_DEFAULT_ID='local';e.MAX_DISPLAY_NAME_LENGTH=50;e.PARTICIPANT_JOINED_SOUND_ID='PARTICIPANT_JOINED_SOUND';e.PARTICIPANT_LEFT_SOUND_ID='PARTICIPANT_LEFT_SOUND';e.PARTICIPANT_ROLE={MODERATOR:'moderator',NONE:'none',PARTICIPANT:'participant'}},945,[548]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.preloadImage=function(t){if((0,o.isIconUrl)(t))return Promise.resolve(t);return new Promise(function(o,u){n.Image.prefetch(t).then(function(){return o(t)},u)})};var n=r(d[0]),o=r(d[1])},946,[15,878]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ParticipantView",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},947,[3,948]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),c=n(r(d[4])),p=n(r(d[5])),l=n(r(d[6])),u=n(r(d[7])),f=t(r(d[8])),v=r(d[9]),h=r(d[10]),I=r(d[11]),E=r(d[12]),_=r(d[13]),y=r(d[14]),V=r(d[15]),P=r(d[16]),T=r(d[17]),k=r(d[18]),C=r(d[19]),b=n(r(d[20])),S=(function(t){function n(){return(0,s.default)(this,n),(0,p.default)(this,(0,l.default)(n).apply(this,arguments))}return(0,u.default)(n,t),(0,c.default)(n,[{key:"_renderConnectionInfo",value:function(t){var n;switch(t){case _.JitsiParticipantConnectionStatus.INACTIVE:n='connection.LOW_BANDWIDTH';break;default:return null}var s=this.props,c=s.avatarSize,p=s._participantName,l=s.t,u=(0,o.default)({},b.default.connectionInfoContainer,{width:1.5*c});return f.default.createElement(v.View,{pointerEvents:"box-none",style:u},f.default.createElement(v.Text,{style:b.default.connectionInfoText},l(n,{displayName:p})))}},{key:"render",value:function(){var t=this.props,n=t._connectionStatus,s=t._isFakeParticipant,c=t._renderVideo,p=t._videoTrack,l=t.disableVideo,u=t.onPress,E=t.tintStyle,P=n!==_.JitsiParticipantConnectionStatus.ACTIVE,k=P||this.props.tintEnabled,C=this.props.testHintId?this.props.testHintId:"org.jitsi.meet.Participant#"+this.props.participantId,S=s&&!l;return f.default.createElement(V.Container,{onClick:c||S?void 0:u,style:(0,o.default)({},b.default.participantView,this.props.style),touchFeedback:!1},f.default.createElement(T.TestHint,{id:C,onPress:S?void 0:u,value:""}),S&&f.default.createElement(h.YoutubeLargeVideo,{youtubeId:this.props.participantId}),!s&&c&&f.default.createElement(y.VideoTrack,{onPress:u,videoTrack:p,waitForVideoStarted:!1,zOrder:this.props.zOrder,zoomEnabled:this.props.zoomEnabled}),!S&&!c&&f.default.createElement(v.View,{style:b.default.avatarContainer},f.default.createElement(I.Avatar,{participantId:this.props.participantId,size:this.props.avatarSize})),k&&f.default.createElement(V.TintedView,{style:P?void 0:E}),this.props.useConnectivityInfoLabel&&this._renderConnectionInfo(n))}}]),n})(f.Component);var w=(0,E.translate)((0,P.connect)(function(t,n){var o=n.disableVideo,s=n.participantId,c=(0,C.getParticipantById)(t,s);return{_connectionStatus:_.JitsiParticipantConnectionStatus.ACTIVE,_isFakeParticipant:c&&c.isFakeParticipant,_participantName:void 0,_renderVideo:(0,C.shouldRenderParticipantVideo)(t,s)&&!o,_videoTrack:(0,k.getTrackByMediaTypeAndParticipant)(t['features/base/tracks'],y.MEDIA_TYPE.VIDEO,s)}})(S));e.default=w},948,[2,3,53,4,5,6,9,10,59,15,949,544,726,879,887,539,443,1003,903,878,1015]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={VideoShareButton:!0};Object.defineProperty(e,"VideoShareButton",{enumerable:!0,get:function(){return o.default}});var o=t(r(d[1])),u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))})},949,[3,950,982]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),l=t(r(d[2])),n=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),c=r(d[6]),h=r(d[7]),f=r(d[8]),b=r(d[9]),v=r(d[10]),_=r(d[11]),p=r(d[12]),y=(function(t){function c(){var t,l;(0,o.default)(this,c);for(var u=arguments.length,h=new Array(u),b=0;b<u;b++)h[b]=arguments[b];return(l=(0,n.default)(this,(t=(0,s.default)(c)).call.apply(t,[this].concat(h)))).accessibilityLabel='toolbar.accessibilityLabel.sharedvideo',l.icon=f.IconShareVideo,l.label='toolbar.sharedvideo',l.toggledLabel='toolbar.stopSharedVideo',l}return(0,u.default)(c,t),(0,l.default)(c,[{key:"_handleClick",value:function(){this._doToggleSharedVideo()}},{key:"_isToggled",value:function(){return this.props._sharingVideo}},{key:"_isDisabled",value:function(){return this.props._isDisabled}},{key:"_doToggleSharedVideo",value:function(){this.props.dispatch((0,p.toggleSharedVideo)())}}]),c})(_.AbstractButton);function V(t){return['playing','pause','start'].includes(t)}var S=(0,h.translate)((0,v.connect)(function(t,o){var l=t['features/youtube-player'],n=l.ownerId,s=l.status,u=(0,b.getLocalParticipant)(t).id,h=(0,c.getFeatureFlag)(t,c.VIDEO_SHARE_BUTTON_ENABLED,!0),f=o.visible,v=void 0===f?h:f;return n!==u?{_isDisabled:V(s),_sharingVideo:!1,visible:v}:{_sharingVideo:V(s),visible:v}})(y));e.default=S},950,[3,4,5,6,9,10,951,726,548,704,443,970,980]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},951,[952,953,954,955]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.updateFlags=function(n){return{type:t.UPDATE_FLAGS,flags:n}};var t=r(d[0])},952,[953]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UPDATE_FLAGS=void 0;e.UPDATE_FLAGS='UPDATE_FLAGS'},953,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.WELCOME_PAGE_ENABLED=e.VIDEO_SHARE_BUTTON_ENABLED=e.TOOLBOX_ALWAYS_VISIBLE=e.TILE_VIEW_ENABLED=e.SERVER_URL_CHANGE_ENABLED=e.RESOLUTION=e.RECORDING_ENABLED=e.RAISE_HAND_ENABLED=e.PIP_ENABLED=e.MEETING_PASSWORD_ENABLED=e.MEETING_NAME_ENABLED=e.LIVE_STREAMING_ENABLED=e.IOS_RECORDING_ENABLED=e.INVITE_ENABLED=e.CHAT_ENABLED=e.CONFERENCE_TIMER_ENABLED=e.CLOSE_CAPTIONS_ENABLED=e.CALL_INTEGRATION_ENABLED=e.CALENDAR_ENABLED=e.ADD_PEOPLE_ENABLED=void 0;e.ADD_PEOPLE_ENABLED='add-people.enabled';e.CALENDAR_ENABLED='calendar.enabled';e.CALL_INTEGRATION_ENABLED='call-integration.enabled';e.CLOSE_CAPTIONS_ENABLED='close-captions.enabled';e.CONFERENCE_TIMER_ENABLED='conference-timer.enabled';e.CHAT_ENABLED='chat.enabled';e.INVITE_ENABLED='invite.enabled';e.IOS_RECORDING_ENABLED='ios.recording.enabled';e.LIVE_STREAMING_ENABLED='live-streaming.enabled';e.MEETING_NAME_ENABLED='meeting-name.enabled';e.MEETING_PASSWORD_ENABLED='meeting-password.enabled';e.PIP_ENABLED='pip.enabled';e.RAISE_HAND_ENABLED='raise-hand.enabled';e.RECORDING_ENABLED='recording.enabled';e.RESOLUTION='resolution';e.SERVER_URL_CHANGE_ENABLED='server-url-change.enabled';e.TILE_VIEW_ENABLED='tile-view.enabled';e.TOOLBOX_ALWAYS_VISIBLE='toolbox.alwaysVisible';e.VIDEO_SHARE_BUTTON_ENABLED='video-share.enabled';e.WELCOME_PAGE_ENABLED='welcomepage.enabled'},954,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getFeatureFlag=function(u,n,o){var l=(0,f.toState)(u)['features/base/flags'];if(l){var s=l[n];if(void 0!==s)return s}return((0,t.getAppProp)(u,'flags')||{})[n]||o};var t=r(d[0]),f=r(d[1])},955,[956,443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},956,[957,958,959,969]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.appWillMount=function(t){return function(p){'object'==typeof APP&&APP.API.init(),p({type:n.APP_WILL_MOUNT,app:t})}},e.appWillUnmount=function(t){return{type:n.APP_WILL_UNMOUNT,app:t}};var n=r(d[0])},957,[958]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.APP_WILL_UNMOUNT=e.APP_WILL_MOUNT=void 0;e.APP_WILL_MOUNT='APP_WILL_MOUNT';e.APP_WILL_UNMOUNT='APP_WILL_UNMOUNT'},958,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BaseApp",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},959,[3,960]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),l=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=r(d[7]),v=n(r(d[8])),h=t(r(d[9])),p=r(d[10]),y=r(d[11]),_=r(d[12]),P=n(r(d[13])),E=r(d[14]),S=r(d[15]),w=r(d[16]),k=r(d[17]),M=n(r(d[18])),R=(function(t){function n(t){var u;return(0,o.default)(this,n),(u=(0,l.default)(this,(0,s.default)(n).call(this,t))).state={route:{},store:void 0},u}return(0,c.default)(n,t),(0,u.default)(n,[{key:"componentDidMount",value:function(){var t=this;this._init=this._initStorage().catch(function(t){M.default.error(t)}).then(function(){return new Promise(function(n){t.setState({store:t._createStore()},n)})}).then(function(){return t.state.store.dispatch((0,k.appWillMount)(t))}).catch(function(t){M.default.error(t)})}},{key:"componentWillUnmount",value:function(){this.state.store.dispatch((0,k.appWillUnmount)(this))}},{key:"_initStorage",value:function(){return f.jitsiLocalStorage.getItem('_initializing')||Promise.resolve()}},{key:"render",value:function(){var t=this.state,n=t.route,o=n.component,u=n.props,l=t.store;return l?h.default.createElement(p.I18nextProvider,{i18n:E.i18next},h.default.createElement(y.Provider,{store:l},h.default.createElement(h.Fragment,null,this._createMainElement(o,u),h.default.createElement(w.SoundCollection,null),this._createExtraElement(),this._renderDialogContainer()))):null}},{key:"_createExtraElement",value:function(){return null}},{key:"_createMainElement",value:function(t,n){return t?h.default.createElement(t,n||{}):null}},{key:"_createStore",value:function(){var t,n=S.ReducerRegistry.combineReducers(),o=S.MiddlewareRegistry.applyMiddleware(P.default);'object'==typeof window&&(t=window.devToolsExtension)&&(o=(0,_.compose)(o,t()));var u=(0,_.createStore)(n,S.PersistenceRegistry.getPersistedState(),o);return S.StateListenerRegistry.subscribe(u),'undefined'!=typeof APP&&(APP.store=u),u}},{key:"_navigate",value:function(t){var n=this;return v.default.isEqual(t,this.state.route)?Promise.resolve():t.href?(window.location.href=t.href,Promise.resolve()):new Promise(function(o){n.setState({route:t},o)})}}]),n})(h.Component);e.default=R},960,[2,3,4,5,6,9,10,483,445,59,843,446,465,961,726,443,962,957,968]);
__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return function(n){var u=n.dispatch,c=n.getState;return function(n){return function(f){return'function'==typeof f?f(u,c,t):n(f)}}}}e.__esModule=!0;var n=t();n.withExtraArgument=t,e.default=n},961,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},962,[963,964,966]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._addAudioElement=function(t,u){return{type:n._ADD_AUDIO_ELEMENT,audioElement:u,soundId:t}},e._removeAudioElement=function(t){return{type:n._REMOVE_AUDIO_ELEMENT,soundId:t}},e.playSound=function(t){return{type:n.PLAY_SOUND,soundId:t}},e.registerSound=function(u,o){var _=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{type:n.REGISTER_SOUND,soundId:u,src:(0,t.getSoundsPath)()+"/"+o,options:_}},e.stopSound=function(t){return{type:n.STOP_SOUND,soundId:t}},e.unregisterSound=function(t){return{type:n.UNREGISTER_SOUND,soundId:t}};var n=r(d[0]),t=r(d[1])},963,[964,965]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UNREGISTER_SOUND=e.STOP_SOUND=e.REGISTER_SOUND=e.PLAY_SOUND=e._REMOVE_AUDIO_ELEMENT=e._ADD_AUDIO_ELEMENT=void 0;e._ADD_AUDIO_ELEMENT='_ADD_AUDIO_ELEMENT';e._REMOVE_AUDIO_ELEMENT='_REMOVE_AUDIO_ELEMENT';e.PLAY_SOUND='PLAY_SOUND';e.REGISTER_SOUND='REGISTER_SOUND';e.STOP_SOUND='STOP_SOUND';e.UNREGISTER_SOUND='UNREGISTER_SOUND'},964,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getSoundsPath=function(){return(0,t.getSdkBundlePath)()};var t=r(d[0])},965,[909]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"SoundCollection",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},966,[3,967]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapDispatchToProps=A,e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),f=n(r(d[5])),l=n(r(d[6])),p=n(r(d[7])),c=t(r(d[8])),_=r(d[9]),v=r(d[10]),h=r(d[11]),y=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,l.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=0,n=[],u=this.props._sounds.entries(),s=Array.isArray(u),f=0;for(u=s?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(f>=u.length)break;l=u[f++]}else{if((f=u.next()).done)break;l=f.value}var p=l,v=(0,o.default)(p,2),h=v[0],y=v[1],A=y.options,b=y.src;n.push(c.default.createElement(_.Audio,{key:t,setRef:this._setRef.bind(this,h),src:b,loop:A.loop})),t+=1}return n}},{key:"_setRef",value:function(t,n){n?this.props._addAudioElement(t,n):this.props._removeAudioElement(t)}}]),n})(c.Component);function A(t){return{_addAudioElement:function(n,o){t((0,h._addAudioElement)(n,o))},_removeAudioElement:function(n){t((0,h._removeAudioElement)(n))}}}var b=(0,v.connect)(function(t){return{_sounds:t['features/base/sounds']}},A)(y);e.default=b},967,[2,3,25,4,5,6,9,10,59,887,443,963]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/app');e.default=t},968,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getAppProp=function(p,n){var o=(0,t.toState)(p)['features/base/app'];if(o){var u=o.app;if(u)return u.props[n]}return};var t=r(d[0])},969,[443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AbstractAudioMuteButton",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"AbstractButton",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"AbstractHangupButton",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"AbstractVideoMuteButton",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"BetaTag",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"OverflowMenuItem",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"ToolboxButtonWithIcon",{enumerable:!0,get:function(){return l.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),c=t(r(d[5])),b=t(r(d[6])),l=t(r(d[7]))},970,[3,971,972,975,976,977,978,979]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),f=r(d[6]),s=(function(t){function s(){var t,n;(0,u.default)(this,s);for(var c=arguments.length,_=new Array(c),v=0;v<c;v++)_[v]=arguments[v];return(n=(0,o.default)(this,(t=(0,l.default)(s)).call.apply(t,[this].concat(_)))).icon=f.IconMicrophone,n.toggledIcon=f.IconMicDisabled,n}return(0,c.default)(s,t),(0,n.default)(s,[{key:"_handleClick",value:function(){this._setAudioMuted(!this._isAudioMuted())}},{key:"_isAudioMuted",value:function(){}},{key:"_isToggled",value:function(){return this._isAudioMuted()}},{key:"_setAudioMuted",value:function(t){}}]),s})(t(r(d[7])).default);e.default=s},971,[3,4,5,6,9,10,548,972]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.defaultDisabledButtonStyles=void 0;var o=l(r(d[2])),s=l(r(d[3])),n=l(r(d[4])),u=l(r(d[5])),y=l(r(d[6])),c=l(r(d[7])),f=l(r(d[8])),b=l(r(d[9])),h=t(r(d[10])),_=r(d[11]),v=l(r(d[12])),k={iconStyle:{opacity:.5},labelStyle:{opacity:.5},style:void 0,underlayColor:void 0};e.defaultDisabledButtonStyles=k;var S=(function(t){function l(t){var o;return(0,n.default)(this,l),(o=(0,y.default)(this,(0,c.default)(l).call(this,t)))._onClick=o._onClick.bind((0,b.default)((0,b.default)(o))),o}return(0,f.default)(l,t),(0,u.default)(l,[{key:"_handleClick",value:function(){}},{key:"_getElementAfter",value:function(){return null}},{key:"_getIcon",value:function(){return(this._isToggled()?this.toggledIcon:this.icon)||this.icon}},{key:"_getLabel",value:function(){return(this._isToggled()?this.toggledLabel:this.label)||this.label}},{key:"_getStyles",value:function(){var t=this.props,l=t.disabledStyles,o=t.styles,s=t.toggledStyles,n=(this._isToggled()?s:o)||o;return this._isDisabled()&&n&&l?{iconStyle:(0,_.combineStyles)(n.iconStyle,l.iconStyle),labelStyle:(0,_.combineStyles)(n.labelStyle,l.labelStyle),style:(0,_.combineStyles)(n.style,l.style),underlayColor:l.underlayColor||n.underlayColor}:n}},{key:"_getTooltip",value:function(){return this.tooltip||''}},{key:"_isDisabled",value:function(){return!1}},{key:"_isToggled",value:function(){}},{key:"_onClick",value:function(){var t=this.props.afterClick;this._handleClick(),t&&t()}},{key:"render",value:function(){var t=(0,s.default)({},this.props,{accessibilityLabel:this.accessibilityLabel,disabled:this._isDisabled(),elementAfter:this._getElementAfter(),icon:this._getIcon(),label:this._getLabel(),styles:this._getStyles(),toggled:this._isToggled(),tooltip:this._getTooltip()});return h.default.createElement(v.default,(0,o.default)({disabled:this._isDisabled(),onClick:this._onClick},t))}}]),l})(h.Component);e.default=S,S.defaultProps={afterClick:void 0,disabledStyles:k,showLabel:!1,styles:void 0,toggledStyles:void 0,tooltipPosition:'top',visible:!0}},972,[2,3,24,53,4,5,6,9,10,8,59,522,973]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),s=t(r(d[2])),n=t(r(d[3])),u=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),f=r(d[7]),y=r(d[8]),b=(function(t){function b(){return(0,l.default)(this,b),(0,n.default)(this,(0,u.default)(b).apply(this,arguments))}return(0,o.default)(b,t),(0,s.default)(b,[{key:"_renderIcon",value:function(){var t=this.props.styles;return c.default.createElement(y.Icon,{src:this.props.icon,style:t&&t.iconStyle})}},{key:"_renderItem",value:function(){var t=this.props,l=t.disabled,s=t.elementAfter,n=t.onClick,u=t.showLabel,o=t.styles,y=t.toggled,b=this._renderIcon(),h=o&&o.style;return u&&(b=c.default.createElement(f.View,{style:h},b,c.default.createElement(f.Text,{style:o&&o.labelStyle},this.label),s),h=void 0),c.default.createElement(f.TouchableHighlight,{accessibilityLabel:this.accessibilityLabel,accessibilityRole:"button",accessibilityState:{selected:y},disabled:l,onPress:n,style:h,underlayColor:o&&o.underlayColor},b)}}]),b})(t(r(d[9])).default);e.default=b},973,[3,4,5,6,9,10,59,15,548,974]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),p=(function(t){function p(t){var n;return(0,l.default)(this,p),(n=(0,o.default)(this,(0,u.default)(p).call(this,t)))._onClick=n._onClick.bind((0,f.default)((0,f.default)(n))),n}return(0,s.default)(p,t),(0,n.default)(p,[{key:"_maybeTranslateAttribute",value:function(t){var l=this.props.t;return'function'==typeof l?l(t):t}},{key:"_onClick",value:function(){var t=this.props,l=t.disabled,n=t.onClick;l||n&&n.apply(void 0,arguments)}},{key:"_renderItem",value:function(){return null}},{key:"render",value:function(){return this.props.visible?this._renderItem():null}},{key:"label",get:function(){return this._maybeTranslateAttribute(this.props.label)}},{key:"tooltip",get:function(){return this._maybeTranslateAttribute(this.props.tooltip)}},{key:"accessibilityLabel",get:function(){return this._maybeTranslateAttribute(this.props.accessibilityLabel)}}]),p})(r(d[7]).Component);e.default=p,p.defaultProps={disabled:!1,label:'',showLabel:!1,t:void 0,tooltip:'',tooltipPosition:'top',visible:!0}},974,[3,4,5,6,9,10,8,59]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),c=r(d[6]),v=(function(t){function v(){var t,u;(0,n.default)(this,v);for(var o=arguments.length,_=new Array(o),h=0;h<o;h++)_[h]=arguments[h];return(u=(0,l.default)(this,(t=(0,f.default)(v)).call.apply(t,[this].concat(_)))).icon=c.IconHangup,u}return(0,o.default)(v,t),(0,u.default)(v,[{key:"_handleClick",value:function(){this._doHangup()}},{key:"_doHangup",value:function(){}}]),v})(t(r(d[7])).default);e.default=v},975,[3,4,5,6,9,10,548,972]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),f=t(r(d[5])),c=r(d[6]),s=(function(t){function s(){var t,n;(0,u.default)(this,s);for(var f=arguments.length,_=new Array(f),v=0;v<f;v++)_[v]=arguments[v];return(n=(0,l.default)(this,(t=(0,o.default)(s)).call.apply(t,[this].concat(_)))).icon=c.IconCamera,n.toggledIcon=c.IconCameraDisabled,n}return(0,f.default)(s,t),(0,n.default)(s,[{key:"_handleClick",value:function(){this._setVideoMuted(!this._isVideoMuted())}},{key:"_isToggled",value:function(){return this._isVideoMuted()}},{key:"_isVideoMuted",value:function(){}},{key:"_setVideoMuted",value:function(t){}}]),s})(t(r(d[7])).default);e.default=s},976,[3,4,5,6,9,10,548,972]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),s=t(r(d[7])),p=r(d[8]),v=r(d[9]),h=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return s.default.createElement(v.Container,{className:"beta-tag"},s.default.createElement(v.Text,null,this.props.t('recording.beta')))}}]),n})(s.Component),_=(0,p.translate)(h);e.default=_},977,[2,3,4,5,6,9,10,59,726,539]);
__d(function(g,r,i,a,m,e,d){},978,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),v=n(r(d[8])),_=t(r(d[9])),h=r(d[10]),M=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,u.default)(this,(0,c.default)(n).call(this,t))).state={isHovered:!1},s._onMouseEnter=s._onMouseEnter.bind((0,v.default)((0,v.default)(s))),s._onMouseLeave=s._onMouseLeave.bind((0,v.default)((0,v.default)(s))),s}return(0,f.default)(n,t),(0,l.default)(n,[{key:"_onMouseEnter",value:function(){this.setState({isHovered:!0})}},{key:"_onMouseLeave",value:function(){this.setState({isHovered:!1})}},{key:"render",value:function(){var t=this.props,n=t.children,o=t.icon,l=t.iconDisabled,u=t.onIconClick,c=t.styles,f={},v=9;return l?f.className='settings-button-small-icon settings-button-small-icon--disabled':(f.className='settings-button-small-icon',f.onClick=u,this.state.isHovered&&(f.className=f.className+" settings-button-small-icon--hovered",v=11)),_.default.createElement("div",{className:"settings-button-container",styles:c},n,_.default.createElement("div",{onMouseEnter:this._onMouseEnter,onMouseLeave:this._onMouseLeave},_.default.createElement(h.Icon,(0,s.default)({},f,{size:v,src:o}))))}}]),n})(_.Component);e.default=M},979,[2,3,24,4,5,6,9,10,8,59,548]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setSharedVideoStatus=function(t,n,u,S){return{type:o.SET_SHARED_VIDEO_STATUS,ownerId:S,status:n,time:u,videoId:t}},e.toggleSharedVideo=function(){return{type:'TOGGLE_SHARED_VIDEO'}},e.showEnterVideoLinkPrompt=function(o){return(0,t.openDialog)(n.EnterVideoLinkPrompt,{onPostSubmit:o})};var t=r(d[0]),o=r(d[1]),n=r(d[2])},980,[531,981,949]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_SHARED_VIDEO=e.SET_SHARED_VIDEO_STATUS=void 0;e.SET_SHARED_VIDEO_STATUS='SET_SHARED_VIDEO_STATUS';e.TOGGLE_SHARED_VIDEO='TOGGLE_SHARED_VIDEO'},981,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},982,[983]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"EnterVideoLinkPrompt",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"YoutubeLargeVideo",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},983,[3,984,986]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),p=r(d[7]),s=r(d[8]),h=(function(t){function s(){return(0,u.default)(this,s),(0,l.default)(this,(0,o.default)(s).apply(this,arguments))}return(0,f.default)(s,t),(0,n.default)(s,[{key:"render",value:function(){return c.default.createElement(p.InputDialog,{contentKey:"dialog.shareVideoTitle",onSubmit:this._onSetVideoLink,textInputProps:{placeholder:'https://youtu.be/TB7LlM4erx8'}})}}]),s})(t(r(d[9])).default),v=(0,s.connect)()(h);e.default=v},984,[3,4,5,6,9,10,59,531,443,985]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),v=t(r(d[6])),c=(function(t){function c(t){var n;return(0,u.default)(this,c),(n=(0,o.default)(this,(0,f.default)(c).call(this,t)))._onSetVideoLink=n._onSetVideoLink.bind((0,v.default)((0,v.default)(n))),n}return(0,l.default)(c,t),(0,n.default)(c,[{key:"_onSetVideoLink",value:function(t){if(!t||!t.trim())return!1;var u,n=(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|(?:m\.)?youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/,!!(u=t.match(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|(?:m\.)?youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/))&&u[1]);if(n){var o=this.props.onPostSubmit;return o&&o(n),!0}return!1}}]),c})(r(d[7]).Component);e.default=c},985,[3,4,5,6,9,10,8,59]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),u=n(r(d[4])),l=n(r(d[5])),c=n(r(d[6])),p=n(r(d[7])),h=t(r(d[8])),f=r(d[9]),y=n(r(d[10])),_=r(d[11]),v=r(d[12]),b=r(d[13]),R=r(d[14]),S=r(d[15]),k=n(r(d[16])),C=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,u.default)(this,(0,l.default)(n).call(this,t))).playerRef=(0,h.createRef)(),s._onReady=s._onReady.bind((0,p.default)((0,p.default)(s))),s._onChangeState=s._onChangeState.bind((0,p.default)((0,p.default)(s))),s.setWideScreenMode(t._isWideScreen),s}return(0,c.default)(n,t),(0,s.default)(n,[{key:"componentDidUpdate",value:function(t){var n=this.playerRef.current,o=this.props,s=o._isWideScreen,u=o._seek;u!==t._seek&&n&&n.getCurrentTime().then(function(t){W(u,t)&&n&&n.seekTo(u)}),s!==t._isWideScreen&&this.setWideScreenMode(s)}},{key:"componentDidMount",value:function(){var t=this;this.intervalId=setInterval(function(){t.saveRefTime()},5e3)}},{key:"componentWillUnmount",value:function(){clearInterval(this.intervalId),this.intervalId=null}},{key:"render",value:function(){var t=this.props,n=t._enableControls,o=t._isPlaying,s=t._playerHeight,u=t._playerWidth,l=t.youtubeId;return h.default.createElement(f.View,{pointerEvents:n?'auto':'none',style:k.default.youtubeVideoContainer},h.default.createElement(y.default,{height:s,initialPlayerParams:{controls:n,modestbranding:!0,preventFullScreen:!0},onChangeState:this._onChangeState,onReady:this._onReady,play:o,playbackRate:1,ref:this.playerRef,videoId:l,volume:50,webViewProps:{bounces:!1,mediaPlaybackRequiresUserAction:!1,scrollEnabled:!1,userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"},width:u}))}},{key:"_onReady",value:function(){var t;(null==(t=this.props)?void 0:t._isOwner)&&this.onVideoReady(this.props.youtubeId,this.playerRef.current&&this.playerRef.current.getCurrentTime(),this.props._ownerId)}},{key:"_onChangeState",value:function(t){var n,o=this;(null==(n=this.playerRef)?void 0:n.current)&&this.playerRef.current.getCurrentTime().then(function(n){var s=o.props,u=s._isOwner,l=s._isPlaying,c=s._isStopped,p=s._ownerId,h=s._seek,f=s.youtubeId;I(c,u,t,l,n,h)&&o.onVideoChangeEvent(f,t,n,p)})}},{key:"saveRefTime",value:function(){var t=this,n=this.props,o=n.youtubeId,s=n._status,u=n._ownerId;this.playerRef.current&&this.playerRef.current.getCurrentTime().then(function(n){t.onVideoChangeEvent(o,s,n,u)})}},{key:"onVideoChangeEvent",value:function(t,n,o,s){['playing','paused'].includes(n)&&this.props.dispatch((0,S.setSharedVideoStatus)(t,w(n),o,s))}},{key:"onVideoReady",value:function(t,n,o){var s=this;n.then(function(n){return s.props.dispatch((0,S.setSharedVideoStatus)(t,'playing',n,o))})}},{key:"setWideScreenMode",value:function(t){this.props.dispatch((0,R.setToolboxVisible)(!t))}}]),n})(h.Component);function I(t,n,o,s,u,l){return!t&&(!(!n||'buffering'===o)&&(!!(s&&'paused'===o||!s&&'playing'===o)||W(u,l)))}function W(t,n){return Math.abs(t-n)>5}function w(t){return'paused'===t?'pause':t}var T=(0,v.connect)(function(t){var n,o,s=t['features/youtube-player'],u=s.ownerId,l=s.status,c=s.time,p=(0,_.getLocalParticipant)(t),h=t['features/base/responsive-ui'],f=h.aspectRatio,y=h.clientHeight,v=h.clientWidth,R=f===b.ASPECT_RATIO_WIDE;return R?o=16*(n=y)/9:n=9*(o=v)/16,{_enableControls:u===p.id,_isOwner:u===p.id,_isPlaying:'playing'===l,_isStopped:'stop'===l,_isWideScreen:R,_ownerId:u,_playerHeight:n,_playerWidth:o,_seek:c,_status:l}})(C);e.default=T},986,[2,3,4,5,6,9,10,8,59,15,987,704,443,999,1000,980,1002]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"getYoutubeMeta",{enumerable:!0,get:function(){return n.getYoutubeMeta}}),e.default=void 0;var u=t(r(d[1])),n=r(d[2]),o=u.default;e.default=o},987,[3,988,998]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var c=n(r(d[2])),u=n(r(d[3])),o=t(r(d[4])),l=r(d[5]),s=n(r(d[6])),S=r(d[7]),v=r(d[8]),f=r(d[9]),p=l.StyleSheet.create({webView:{backgroundColor:'transparent'}}),P=(0,o.forwardRef)(function(t,n){var P=t.height,R=t.width,y=t.videoId,N=t.playList,b=t.play,A=void 0!==b&&b,E=t.mute,C=void 0!==E&&E,T=t.volume,k=void 0===T?100:T,w=t.webViewStyle,_=t.webViewProps,I=t.playbackRate,L=void 0===I?1:I,h=t.onError,O=void 0===h?function(t){}:h,U=t.onReady,F=void 0===U?function(t){}:U,Y=t.playListStartIndex,j=void 0===Y?0:Y,J=t.initialPlayerParams,V=void 0===J?{}:J,M=t.forceAndroidAutoplay,D=void 0!==M&&M,q=t.onChangeState,Q=void 0===q?function(t){}:q,W=t.onPlaybackQualityChange,x=void 0===W?function(t){}:W,G=t.onPlaybackRateChange,H=void 0===G?function(t){}:G,z=(0,o.useRef)(null),B=(0,o.useRef)(new v.EventEmitter),K=(0,o.useState)(!1),X=(0,u.default)(K,2),Z=X[0],$=X[1];(0,o.useImperativeHandle)(n,function(){return{getDuration:function(){return z.current.injectJavaScript(f.PLAYER_FUNCTIONS.durationScript),new Promise(function(t){B.current.once('getDuration',t)})},getCurrentTime:function(){return z.current.injectJavaScript(f.PLAYER_FUNCTIONS.currentTimeScript),new Promise(function(t){B.current.once('getCurrentTime',t)})},isMuted:function(){return z.current.injectJavaScript(f.PLAYER_FUNCTIONS.isMutedScript),new Promise(function(t){B.current.once('isMuted',t)})},getVolume:function(){return z.current.injectJavaScript(f.PLAYER_FUNCTIONS.getVolumeScript),new Promise(function(t){B.current.once('getVolume',t)})},getPlaybackRate:function(){return z.current.injectJavaScript(f.PLAYER_FUNCTIONS.getPlaybackRateScript),new Promise(function(t){B.current.once('getPlaybackRate',t)})},getAvailablePlaybackRates:function(){return z.current.injectJavaScript(f.PLAYER_FUNCTIONS.getAvailablePlaybackRatesScript),new Promise(function(t){B.current.once('getAvailablePlaybackRates',t)})},seekTo:function(t,n){z.current.injectJavaScript(f.PLAYER_FUNCTIONS.seekToScript(t,n))}}},[]),(0,o.useEffect)(function(){Z&&(A?z.current.injectJavaScript(f.PLAYER_FUNCTIONS.playVideo):z.current.injectJavaScript(f.PLAYER_FUNCTIONS.pauseVideo),C?z.current.injectJavaScript(f.PLAYER_FUNCTIONS.muteVideo):z.current.injectJavaScript(f.PLAYER_FUNCTIONS.unMuteVideo),z.current.injectJavaScript(f.PLAYER_FUNCTIONS.setVolume(k)),z.current.injectJavaScript(f.PLAYER_FUNCTIONS.setPlaybackRate(L)))},[A,Z,C,k,L]);var ee=(0,o.useCallback)(function(t){var n=JSON.parse(t.nativeEvent.data);try{switch(n.eventType){case'playerStateChange':Q(S.PLAYER_STATES[n.data]);break;case'playerReady':F(),$(!0),Array.isArray(N)&&z.current.injectJavaScript(f.PLAYER_FUNCTIONS.loadPlaylist(N,j,A));break;case'playerQualityChange':x(n.data);break;case'playerError':O(S.PLAYER_ERROR[n.data]);break;case'playbackRateChange':H(n.data);break;default:B.current.emit(n.eventType,n.data)}}catch(t){console.warn(t)}},[Q,F,x,O,H,j,N,A]);return o.default.createElement(l.View,{style:{height:P,width:R}},o.default.createElement(s.default,(0,c.default)({ref:z,originWhitelist:['*'],onMessage:ee,allowsInlineMediaPlayback:!0,style:[p.webView,w],mediaPlaybackRequiresUserAction:!1,allowsFullscreenVideo:!(null==V?void 0:V.preventFullScreen),source:{html:(0,f.MAIN_SCRIPT)(y,N,V)},userAgent:D?l.Platform.select({android:S.CUSTOM_USER_AGENT,ios:''}):'',onShouldStartLoadWithRequest:function(t){return'about:blank'===t.mainDocumentURL}},_)))});e.default=P},988,[2,3,24,25,59,15,989,995,996,997]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"WebView",{enumerable:!0,get:function(){return u.default}}),e.default=void 0;var u=t(r(d[1])),f=u.default;e.default=f},989,[3,990]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n,o=t(r(d[1])),s=t(r(d[2])),l=r(d[3]),u=t(r(d[4])),c=r(d[5]),p=t(r(d[6])),f=this&&this.__extends||(n=function(t,o){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var o in n)n.hasOwnProperty(o)&&(t[o]=n[o])})(t,o)},function(t,o){function s(){this.constructor=t}n(t,o),t.prototype=null===o?Object.create(o):(s.prototype=o.prototype,new s)}),h=this&&this.__awaiter||function(t,n,o,s){return new(o||(o=Promise))(function(l,u){function c(t){try{f(s.next(t))}catch(t){u(t)}}function p(t){try{f(s.throw(t))}catch(t){u(t)}}function f(t){var n;t.done?l(t.value):(n=t.value,n instanceof o?n:new o(function(t){t(n)})).then(c,p)}f((s=s.apply(t,n||[])).next())})},v=this&&this.__generator||function(t,n){var o,s,l,u,c={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return u={next:p(0),throw:p(1),return:p(2)},"function"==typeof Symbol&&(u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]=function(){return this}),u;function p(t){return function(n){return f([t,n])}}function f(u){if(o)throw new TypeError("Generator is already executing.");for(;c;)try{if(o=1,s&&(l=2&u[0]?s.return:u[0]?s.throw||((l=s.return)&&l.call(s),0):s.next)&&!(l=l.call(s,u[1])).done)return l;switch(s=0,l&&(u=[2&u[0],l.value]),u[0]){case 0:case 1:l=u;break;case 4:return c.label++,{value:u[1],done:!1};case 5:c.label++,s=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(!(l=(l=c.trys).length>0&&l[l.length-1])&&(6===u[0]||2===u[0])){c=0;continue}if(3===u[0]&&(!l||u[1]>l[0]&&u[1]<l[3])){c.label=u[1];break}if(6===u[0]&&c.label<l[1]){c.label=l[1],l=u;break}if(l&&c.label<l[2]){c.label=l[2],c.ops.push(u);break}l[2]&&c.ops.pop(),c.trys.pop();continue}u=n.call(t,c)}catch(t){u=[6,t],s=0}finally{o=l=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}},w=this&&this.__rest||function(t,n){var o={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&n.indexOf(s)<0&&(o[s]=t[s]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var l=0;for(s=Object.getOwnPropertySymbols(t);l<s.length;l++)n.indexOf(s[l])<0&&Object.prototype.propertyIsEnumerable.call(t,s[l])&&(o[s[l]]=t[s[l]])}return o},b=l.UIManager,y=l.Image.resolveAssetSource,S=function(t){var n=t;return'normal'===n?n=.998:'fast'===n&&(n=.99),n},C=l.NativeModules.RNCWebViewManager,E=(0,l.requireNativeComponent)('RNCWebView'),L=(function(t){function n(){var n=null!==t&&t.apply(this,arguments)||this;return n.state={viewState:n.props.startInLoadingState?'LOADING':'IDLE',lastErrorEvent:null},n.webViewRef=s.default.createRef(),n.getCommands=function(){return b.getViewManagerConfig('RNCWebView').Commands},n.goForward=function(){b.dispatchViewManagerCommand(n.getWebViewHandle(),n.getCommands().goForward,void 0)},n.goBack=function(){b.dispatchViewManagerCommand(n.getWebViewHandle(),n.getCommands().goBack,void 0)},n.reload=function(){n.setState({viewState:'LOADING'}),b.dispatchViewManagerCommand(n.getWebViewHandle(),n.getCommands().reload,void 0)},n.stopLoading=function(){b.dispatchViewManagerCommand(n.getWebViewHandle(),n.getCommands().stopLoading,void 0)},n.requestFocus=function(){b.dispatchViewManagerCommand(n.getWebViewHandle(),n.getCommands().requestFocus,void 0)},n.postMessage=function(t){b.dispatchViewManagerCommand(n.getWebViewHandle(),n.getCommands().postMessage,[String(t)])},n.injectJavaScript=function(t){b.dispatchViewManagerCommand(n.getWebViewHandle(),n.getCommands().injectJavaScript,[t])},n.updateNavigationState=function(t){n.props.onNavigationStateChange&&n.props.onNavigationStateChange(t.nativeEvent)},n.getWebViewHandle=function(){var t=(0,l.findNodeHandle)(n.webViewRef.current);return(0,u.default)(null!=t,'nodeHandle expected to be non-null'),t},n.onLoadingStart=function(t){var o=n.props.onLoadStart;o&&o(t),n.updateNavigationState(t)},n.onLoadingError=function(t){t.persist();var o=n.props,s=o.onError,l=o.onLoadEnd;l&&l(t),s&&s(t),console.warn('Encountered an error loading page',
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(n,o,t,f,s,u,c,l){if(!n){var v;if(void 0===o)v=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[t,f,s,u,c,l],h=0;(v=new Error(o.replace(/%s/g,function(){return p[h++]}))).name='Invariant Violation'}throw v.framesToPop=1,v}}},991,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.defaultRenderError=e.defaultRenderLoading=e.createOnShouldStartLoadWithRequest=e.defaultOriginWhitelist=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=r(d[3]),o=t(r(d[4])),f=this&&this.__spreadArrays||function(){for(var t=0,n=0,l=arguments.length;n<l;n++)t+=arguments[n].length;var u=Array(t),o=0;for(n=0;n<l;n++)for(var f=arguments[n],c=0,s=f.length;c<s;c++,o++)u[o]=f[c];return u};e.defaultOriginWhitelist=['http://*','https://*'];var c=function(t){var n=/^[A-Za-z][A-Za-z0-9+\-.]+:(\/\/)?[^/]*/.exec(t);return null===n?'':n[0]},s=function(t){return"^"+(0,n.default)(t).replace(/\\\*/g,'.*')},E=function(t,n){var l=c(n);return t.some(function(t){return new RegExp(t).test(l)})},v=function(t){return f(['about:blank'],t||[]).map(s)};e.createOnShouldStartLoadWithRequest=function(t,n,l){return function(o){var f=o.nativeEvent,c=!0,s=f.url,h=f.lockIdentifier;E(v(n),s)||(u.Linking.openURL(s),c=!1),l&&(c=l(f)),t(c,s,h)}};e.defaultRenderLoading=function(){return l.default.createElement(u.View,{style:o.default.loadingOrErrorView},l.default.createElement(u.ActivityIndicator,null))};e.defaultRenderError=function(t,n,f){return l.default.createElement(u.View,{style:o.default.loadingOrErrorView},l.default.createElement(u.Text,{style:o.default.errorTextTitle},"Error loading page"),l.default.createElement(u.Text,{style:o.default.errorText},"Domain: "+t),l.default.createElement(u.Text,{style:o.default.errorText},"Error Code: "+n),l.default.createElement(u.Text,{style:o.default.errorText},"Description: "+f))}},992,[3,993,59,15,994]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=/[|\\{}()[\]^$+*?.-]/g;m.exports=function(n){if('string'!=typeof n)throw new TypeError('Expected a string');return n.replace(t,'\\$&')}},993,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]).StyleSheet.create({container:{flex:1,overflow:'hidden'},loadingOrErrorView:{position:'absolute',flex:1,justifyContent:'center',alignItems:'center',height:'100%',width:'100%',backgroundColor:'white'},loadingProgressBar:{height:20},errorText:{fontSize:14,textAlign:'center',marginBottom:2},errorTextTitle:{fontSize:15,fontWeight:'500',marginBottom:10},webView:{backgroundColor:'#ffffff'}});e.default=t},994,[15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CUSTOM_USER_AGENT=e.PLAYER_ERROR=e.PLAYER_STATES=void 0;e.PLAYER_STATES={'-1':'unstarted',0:'ended',1:'playing',2:'paused',3:'buffering',5:'video cued'};e.PLAYER_ERROR={2:'invalid_parameter',5:'HTML5_error',100:'video_not_found',101:'embed_not_allowed',150:'embed_not_allowed'};e.CUSTOM_USER_AGENT='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'},995,[]);
__d(function(g,r,i,a,m,e,d){'use strict';var t,n='object'==typeof Reflect?Reflect:null,o=n&&'function'==typeof n.apply?n.apply:function(t,n,o){return Function.prototype.apply.call(t,n,o)};t=n&&'function'==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!=t};function u(){u.init.call(this)}m.exports=u,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var f=10;function v(t){if('function'!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function l(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function h(t,n,o,s){var u,f,h,p;if(v(o),void 0===(f=t._events)?(f=t._events=Object.create(null),t._eventsCount=0):(void 0!==f.newListener&&(t.emit('newListener',n,o.listener?o.listener:o),f=t._events),h=f[n]),void 0===h)h=f[n]=o,++t._eventsCount;else if('function'==typeof h?h=f[n]=s?[o,h]:[h,o]:s?h.unshift(o):h.push(o),(u=l(t))>0&&h.length>u&&!h.warned){h.warned=!0;var c=new Error('Possible EventEmitter memory leak detected. '+h.length+' '+String(n)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name='MaxListenersExceededWarning',c.emitter=t,c.type=n,c.count=h.length,p=c,console&&console.warn&&console.warn(p)}return t}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function c(t,n,o){var s={fired:!1,wrapFn:void 0,target:t,type:n,listener:o},u=p.bind(s);return u.listener=o,s.wrapFn=u,u}function y(t,n,o){var s=t._events;if(void 0===s)return[];var u=s[n];return void 0===u?[]:'function'==typeof u?o?[u.listener||u]:[u]:o?w(u):_(u,u.length)}function L(t){var n=this._events;if(void 0!==n){var o=n[t];if('function'==typeof o)return 1;if(void 0!==o)return o.length}return 0}function _(t,n){for(var o=new Array(n),s=0;s<n;++s)o[s]=t[s];return o}function b(t,n){for(;n+1<t.length;n++)t[n]=t[n+1];t.pop()}function w(t){for(var n=new Array(t.length),o=0;o<n.length;++o)n[o]=t[o].listener||t[o];return n}Object.defineProperty(u,'defaultMaxListeners',{enumerable:!0,get:function(){return f},set:function(t){if('number'!=typeof t||t<0||s(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+'.');f=t}}),u.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},u.prototype.setMaxListeners=function(t){if('number'!=typeof t||t<0||s(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+'.');return this._maxListeners=t,this},u.prototype.getMaxListeners=function(){return l(this)},u.prototype.emit=function(t){for(var n=[],s=1;s<arguments.length;s++)n.push(arguments[s]);var u='error'===t,f=this._events;if(void 0!==f)u=u&&void 0===f.error;else if(!u)return!1;if(u){var v;if(n.length>0&&(v=n[0]),v instanceof Error)throw v;var l=new Error('Unhandled error.'+(v?' ('+v.message+')':''));throw l.context=v,l}var h=f[t];if(void 0===h)return!1;if('function'==typeof h)o(h,this,n);else{var p=h.length,c=_(h,p);for(s=0;s<p;++s)o(c[s],this,n)}return!0},u.prototype.addListener=function(t,n){return h(this,t,n,!1)},u.prototype.on=u.prototype.addListener,u.prototype.prependListener=function(t,n){return h(this,t,n,!0)},u.prototype.once=function(t,n){return v(n),this.on(t,c(this,t,n)),this},u.prototype.prependOnceListener=function(t,n){return v(n),this.prependListener(t,c(this,t,n)),this},u.prototype.removeListener=function(t,n){var o,s,u,f,l;if(v(n),void 0===(s=this._events))return this;if(void 0===(o=s[t]))return this;if(o===n||o.listener===n)0==--this._eventsCount?this._events=Object.create(null):(delete s[t],s.removeListener&&this.emit('removeLi
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.MAIN_SCRIPT=e.PLAYER_FUNCTIONS=void 0;var n={durationScript:"\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getDuration', data: player.getDuration()}));\ntrue;\n",currentTimeScript:"\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getCurrentTime', data: player.getCurrentTime()}));\ntrue;\n",isMutedScript:"\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'isMuted', data: player.isMuted()}));\ntrue;\n",getVolumeScript:"\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getVolume', data: player.getVolume()}));\ntrue;\n",getPlaybackRateScript:"\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getPlaybackRate', data: player.getPlaybackRate()}));\ntrue;\n",getAvailablePlaybackRatesScript:"\nwindow.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'getAvailablePlaybackRates', data: player.getAvailablePlaybackRates()}));\ntrue;\n",seekToScript:function(n,t){return"\nplayer.seekTo("+n+", "+t+")\n"},playVideo:'player.playVideo(); true;',pauseVideo:'player.pauseVideo(); true;',muteVideo:'player.mute(); true;',unMuteVideo:'player.unMute(); true;',setPlaybackRate:function(n){return"player.setPlaybackRate("+n+"); true;"},setVolume:function(n){return"player.setVolume("+n+"); true;"},loadPlaylist:function(n,t,o){return"\n player."+(o?'loadPlaylist':'cuePlaylist')+"({playlist: "+JSON.stringify(n)+",\n index: "+(t||0)+"}); true;"}};e.PLAYER_FUNCTIONS=n;e.MAIN_SCRIPT=function(n,t,o){var l=o.loop,s=void 0!==l&&l,y=o.controls,p=void 0===y||y,c=o.cc_lang_pref,u=o.showClosedCaptions,v=o.color,w=o.end,b=o.preventFullScreen,f=void 0!==b&&b,R=o.playerLang,h=o.iv_load_policy,N=o.modestbranding,P=o.rel,S=o.start;return"<!DOCTYPE html>\n<html>\n <head>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1\">\n <style>\n body {\n margin: 0;\n }\n .container {\n position: relative;\n width: 100%;\n height: 0;\n padding-bottom: 56.25%;\n }\n .video {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n </style>\n </head>\n <body>\n <div class=\"container\">\n <div class=\"video\" id=\"player\" />\n </div>\n\n <script>\n var tag = document.createElement('script');\n\n tag.src = \"https://www.youtube.com/iframe_api\";\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n\n var player;\n function onYouTubeIframeAPIReady() {\n player = new YT.Player('player', {\n height: '1000',\n width: '1000',\n videoId: '"+(n||'')+"',\n playerVars: {\n playsinline: 1,\n loop: "+(s?1:0)+",\n controls: "+(p?1:0)+",\n cc_lang_pref: '"+(c||'')+"',\n cc_load_policy: "+(u?1:0)+",\n color: "+v+",\n end: "+w+",\n fs: "+(f?0:1)+",\n hl: "+R+",\n iv_load_policy: "+h+",\n modestbranding: "+(N?1:0)+",\n rel: "+(P?1:0)+",\n start: "+S+",\n listType: '"+('string'==typeof t?'playlist':'')+"',\n list: '"+('string'==typeof t?t:'')+"',\n },\n events: {\n 'onReady': onPlayerReady,\n 'onStateChange': onPlayerStateChange,\n 'onError': onPlayerError,\n 'onPlaybackQualityChange': onPlaybackQualityChange,\n 'onPlaybackRateChange': onPlaybackRateChange,\n }\n });\n }\n\n function onPlayerError(event) {\n window.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'playerError', data: event.data}))\n }\n\n function onPlaybackRateChange(event) {\n window.ReactNativeWebView.postMessage(JSON.stringify({eventType: 'playbackRateChange', data: event.data}))\n }\n\n function o
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getYoutubeMeta=void 0;var u=t(r(d[1]));e.getYoutubeMeta=function(t){var n;return u.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,u.default.awrap(fetch("https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v="+t+"&format=json"));case 2:return n=o.sent,o.next=5,u.default.awrap(n.json());case 5:return o.abrupt("return",o.sent);case 6:case"end":return o.stop()}},null,this)}},998,[3,270]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ASPECT_RATIO_WIDE=e.ASPECT_RATIO_NARROW=void 0;var _=Symbol('ASPECT_RATIO_NARROW');e.ASPECT_RATIO_NARROW=_;var A=Symbol('ASPECT_RATIO_WIDE');e.ASPECT_RATIO_WIDE=A},999,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.clearToolboxTimeout=function(){return{type:t.CLEAR_TOOLBOX_TIMEOUT}},e.setOverflowMenuVisible=function(o){return{type:t.SET_OVERFLOW_MENU_VISIBLE,visible:o}},e.setToolbarHovered=function(o){return{type:t.SET_TOOLBAR_HOVERED,hovered:o}},e.setToolboxAlwaysVisible=function(o){return{type:t.SET_TOOLBOX_ALWAYS_VISIBLE,alwaysVisible:o}},e.setToolboxEnabled=function(o){return{type:t.SET_TOOLBOX_ENABLED,enabled:o}},e.setToolboxTimeout=function(o,n){return{type:t.SET_TOOLBOX_TIMEOUT,handler:o,timeoutMS:n}},e.setToolboxTimeoutMS=function(o){return{type:t.SET_TOOLBOX_TIMEOUT_MS,timeoutMS:o}},e.setToolboxVisible=function(o){return{type:t.SET_TOOLBOX_VISIBLE,visible:o}},e.toggleToolboxVisible=function(){return{type:t.TOGGLE_TOOLBOX_VISIBLE}};var t=r(d[0])},1000,[1001]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_TOOLBOX_VISIBLE=e.SET_TOOLBOX_VISIBLE=e.SET_TOOLBOX_TIMEOUT_MS=e.SET_TOOLBOX_TIMEOUT=e.SET_TOOLBOX_ENABLED=e.SET_TOOLBOX_ALWAYS_VISIBLE=e.SET_TOOLBAR_HOVERED=e.SET_OVERFLOW_MENU_VISIBLE=e.SET_FULL_SCREEN=e.FULL_SCREEN_CHANGED=e.CLEAR_TOOLBOX_TIMEOUT=void 0;e.CLEAR_TOOLBOX_TIMEOUT='CLEAR_TOOLBOX_TIMEOUT';e.FULL_SCREEN_CHANGED='FULL_SCREEN_CHANGED';e.SET_FULL_SCREEN='SET_FULL_SCREEN';e.SET_OVERFLOW_MENU_VISIBLE='SET_OVERFLOW_MENU_VISIBLE';e.SET_TOOLBAR_HOVERED='SET_TOOLBAR_HOVERED';e.SET_TOOLBOX_ALWAYS_VISIBLE='SET_TOOLBOX_ALWAYS_VISIBLE';e.SET_TOOLBOX_ENABLED='SET_TOOLBOX_ENABLED';e.SET_TOOLBOX_TIMEOUT='SET_TOOLBOX_TIMEOUT';e.SET_TOOLBOX_TIMEOUT_MS='SET_TOOLBOX_TIMEOUT_MS';e.SET_TOOLBOX_VISIBLE='SET_TOOLBOX_VISIBLE';e.TOGGLE_TOOLBOX_VISIBLE='TOGGLE_TOOLBOX_VISIBLE'},1001,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default={youtubeVideoContainer:{alignItems:'center',flex:1,flexDirection:'column',justifyContent:'center'}}},1002,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"TestConnectionInfo",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"TestHint",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},1003,[3,1004,1013]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),c=n(r(d[5])),u=n(r(d[6])),f=n(r(d[7])),p=t(r(d[8])),_=r(d[9]),v=r(d[10]),S=r(d[11]),b=r(d[12]),h=r(d[13]),U=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,l.default)(this,(0,c.default)(n).call(this,t)))._onStatsUpdated=s._onStatsUpdated.bind((0,f.default)((0,f.default)(s))),s.state={stats:{bitrate:{download:0,upload:0}}},s}return(0,u.default)(n,t),(0,s.default)(n,[{key:"_onStatsUpdated",value:function(){var t,n,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setState({stats:{bitrate:{download:(null==(t=o.bitrate)?void 0:t.download)||0,upload:(null==(n=o.bitrate)?void 0:n.upload)||0}}})}},{key:"componentDidMount",value:function(){_.statsEmitter.subscribeToClientStats(this.props._localUserId,this._onStatsUpdated)}},{key:"componentDidUpdate",value:function(t){t._localUserId!==this.props._localUserId&&(_.statsEmitter.unsubscribeToClientStats(t._localUserId,this._onStatsUpdated),_.statsEmitter.subscribeToClientStats(this.props._localUserId,this._onStatsUpdated))}},{key:"componentWillUnmount",value:function(){_.statsEmitter.unsubscribeToClientStats(this.props._localUserId,this._onStatsUpdated)}},{key:"render",value:function(){return this.props._testMode?p.default.createElement(p.Fragment,{accessible:!1},p.default.createElement(h.TestHint,{id:"org.jitsi.meet.conference.connectionState",value:this.props._conferenceConnectionState}),p.default.createElement(h.TestHint,{id:"org.jitsi.meet.conference.joinedState",value:this.props._conferenceJoinedState}),p.default.createElement(h.TestHint,{id:"org.jitsi.meet.conference.grantModeratorAvailable",value:!0}),p.default.createElement(h.TestHint,{id:"org.jitsi.meet.conference.localParticipantRole",value:this.props._localUserRole}),p.default.createElement(h.TestHint,{id:"org.jitsi.meet.stats.rtp",value:JSON.stringify(this.state.stats)})):null}}]),n})(p.Component);var E=(0,S.connect)(function(t){var n=Boolean(t['features/base/conference'].conference),o=(0,v.getLocalParticipant)(t);return{_conferenceConnectionState:t['features/testing'].connectionState,_conferenceJoinedState:n.toString(),_localUserId:null==o?void 0:o.id,_localUserRole:null==o?void 0:o.role,_testMode:(0,b.isTestModeEnabled)(t)}})(U);e.default=E},1004,[2,3,4,5,6,9,10,8,59,1005,704,443,1012,1003]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={statsEmitter:!0};Object.defineProperty(e,"statsEmitter",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=t(r(d[2]))},1005,[3,1006,1010]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1006,[1007]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ConnectionIndicator",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},1007,[3,1008]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),s=r(d[7]),v=r(d[8]),I=r(d[9]),h=t(r(d[10])),O=r(d[11]),_=[s.IconSignalLevel0,s.IconSignalLevel1,s.IconSignalLevel2],S=(function(t){function s(t){var l;return(0,n.default)(this,s),(l=(0,o.default)(this,(0,u.default)(s).call(this,t))).state={autoHideTimeout:void 0,showIndicator:!1,stats:{}},l}return(0,c.default)(s,t),(0,l.default)(s,[{key:"render",value:function(){var t=this.state,n=t.showIndicator,l=t.stats.percent;if(!n||void 0===l)return null;var o=Math.floor(l/33.4);return f.default.createElement(v.BaseIndicator,{icon:_[o],iconStyle:{color:O.CONNECTOR_INDICATOR_COLORS[o]}})}}]),s})(h.default),C=(0,I.connect)()(S);e.default=C},1008,[3,4,5,6,9,10,59,548,539,443,1009,1011]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.INDICATOR_DISPLAY_THRESHOLD=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),p=t(r(d[5])),c=t(r(d[6])),l=t(r(d[7])),f=r(d[8]),h=t(r(d[9]));e.INDICATOR_DISPLAY_THRESHOLD=30;var I=(function(t){function f(t){var n;return(0,o.default)(this,f),(n=(0,s.default)(this,(0,p.default)(f).call(this,t)))._onStatsUpdated=n._onStatsUpdated.bind((0,l.default)((0,l.default)(n))),n}return(0,c.default)(f,t),(0,u.default)(f,[{key:"componentDidMount",value:function(){h.default.subscribeToClientStats(this.props.participantId,this._onStatsUpdated)}},{key:"componentDidUpdate",value:function(t){t.participantId!==this.props.participantId&&(h.default.unsubscribeToClientStats(t.participantId,this._onStatsUpdated),h.default.subscribeToClientStats(this.props.participantId,this._onStatsUpdated))}},{key:"componentWillUnmount",value:function(){h.default.unsubscribeToClientStats(this.props.participantId,this._onStatsUpdated),clearTimeout(this.autoHideTimeout)}},{key:"_onStatsUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=t.connectionQuality,u=void 0===o?{}:{percent:o},s=(0,n.default)({},this.state.stats,t,u);this.setState({stats:s}),this._updateIndicatorAutoHide(s.percent)}},{key:"_updateIndicatorAutoHide",value:function(t){var n=this;t<30?(clearTimeout(this.autoHideTimeout),this.autoHideTimeout=void 0,this.setState({showIndicator:!0})):this.autoHideTimeout||(this.autoHideTimeout=setTimeout(function(){n.setState({showIndicator:!1})},'undefined'==typeof interfaceConfig?5e3:interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT))}}]),f})(f.Component);e.default=I},1009,[3,24,4,5,6,9,10,8,59,1010]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=r(d[3]),u={},c={startListeningForStats:function(t){var n=this;t.on(s.JitsiConnectionQualityEvents.LOCAL_STATS_UPDATED,function(o){return n._onStatsUpdated(t.myUserId(),o)}),t.on(s.JitsiConnectionQualityEvents.REMOTE_STATS_UPDATED,function(t,o){return n._emitStatsUpdate(t,o)}),t.on(s.JitsiE2ePingEvents.E2E_RTT_CHANGED,function(t,o){var s={e2eRtt:o,region:t.getProperty('region')};n._emitStatsUpdate(t.getId(),s)})},subscribeToClientStats:function(t,n){t&&(u[t]||(u[t]=[]),u[t].push(n))},unsubscribeToClientStats:function(t,n){if(u[t]){var o=u[t].filter(function(t){return t!==n});o.length?u[t]=o:delete u[t]}},_emitStatsUpdate:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(u[t]||[]).forEach(function(t){t(n)})},_onStatsUpdated:function(t,s){var u=this,c=s.framerate||{},f=s.resolution||{},l=s.codec||{},v=(0,n.default)({},s,{framerate:c[t],resolution:f[t],codec:l[t]});this._emitStatsUpdate(t,v);var _=Object.keys(c),S=Object.keys(f),E=Object.keys(l);o.default.union(_,S,E).filter(function(n){return n!==t}).forEach(function(t){var n={},o=c[t];o&&(n.framerate=o);var s=f[t];s&&(n.resolution=s);var v=l[t];v&&(n.codec=v),u._emitStatsUpdate(t,n)})}};e.default=c},1010,[3,24,445,879]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CONNECTOR_INDICATOR_COLORS=void 0;var C=r(d[0]),O=[C.ColorPalette.red,C.ColorPalette.Y200,C.ColorPalette.green];e.CONNECTOR_INDICATOR_COLORS=O},1011,[522]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isTestModeEnabled=function(t){var n=t['features/base/config'].testing;return Boolean(n&&n.testMode)}},1012,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),u=n(r(d[3])),l=n(r(d[4])),o=n(r(d[5])),p=n(r(d[6])),f=t(r(d[7])),c=r(d[8]),h=r(d[9]),v=r(d[10]),_=(function(t){function n(){return(0,s.default)(this,n),(0,l.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){return this.props._testModeEnabled?f.default.createElement(c.Text,{accessibilityLabel:this.props.value,onPress:this.props.onPress,testID:this.props.id}):null}}]),n})(f.Component),b=(0,h.connect)(v._mapStateToProps)(_);e.default=b},1013,[2,3,4,5,6,9,10,59,15,443,1014]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(n){return{_testModeEnabled:(0,t.isTestModeEnabled)(n)}};var t=r(d[0])},1014,[1012]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=r(d[0]),t={avatarContainer:{alignItems:'center',justifyContent:'center'},connectionInfoText:{color:n.ColorPalette.white,fontSize:12,marginVertical:n.BoxModel.margin,marginHorizontal:n.BoxModel.margin,textAlign:'center'},connectionInfoContainer:{alignSelf:'center',backgroundColor:n.ColorPalette.darkGrey,borderRadius:20,marginTop:n.BoxModel.margin},participantView:{alignItems:'stretch',flex:1,justifyContent:'center'}};e.default=t},1015,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getAvatarColor=function(t){var o=0;if(t){for(var l=0,u=t,v=Array.isArray(u),b=0,u=v?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var s;if(v){if(b>=u.length)break;s=u[b++]}else{if((b=u.next()).done)break;s=b.value}var y=s;l+=y.codePointAt(0)}o=l%n.length}return"rgba("+n[o]+", "+f+")"},e.getInitials=function(t){for(var n=o.default.split(t,'@')[0],f='',l=o.default.words(n),u=Array.isArray(l),v=0,l=u?l:l["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(u){if(v>=l.length)break;b=l[v++]}else{if((v=l.next()).done)break;b=v.value}var s=b;f.length<2&&(f+=s.substr(0,1).toUpperCase())}return f};var o=t(r(d[1])),n=['232, 105, 156','255, 198, 115','128, 128, 255','105, 232, 194','234, 255, 128'],f=.4},1016,[3,445]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.TINTED_VIEW_DEFAULT=e.UNDERLAY_COLOR=e.AVATAR_SIZE=void 0;var o=t(r(d[1])),n=r(d[2]);e.AVATAR_SIZE=65;e.UNDERLAY_COLOR='rgba(255, 255, 255, 0.2)';var l={pageContainer:{flex:1},pageIndicator:{alignItems:'center',flexDirection:'column',justifyContent:'center',padding:n.BoxModel.padding/2},pageIndicatorActive:{color:n.ColorPalette.white},pageIndicatorContainer:{alignItems:'center',backgroundColor:n.ColorPalette.blue,flexDirection:'row',justifyContent:'space-around'},pageIndicatorContent:{alignItems:'center',flexDirection:'column',justifyContent:'center'},pageIndicatorIcon:{color:n.ColorPalette.blueHighlight,fontSize:24},pageIndicatorText:{color:n.ColorPalette.blueHighlight},pagedList:{flex:1},pagedListContainer:{flex:1,flexDirection:'column'},pagedListContainerDisabled:{opacity:.2}},c={avatarContainer:{alignItems:'center',flexDirection:'row',justifyContent:'space-around',padding:5},avatarContent:{backgroundColor:'rgba(0, 0, 0, 0)',color:"rgba(255, 255, 255, 0.6)",fontSize:Math.floor(32.5),fontWeight:'100',textAlign:'center'},container:{flex:1},list:{flex:1,flexDirection:'column'},listItem:{alignItems:'center',flex:1,flexDirection:'row',padding:5},listItemDetails:{flex:1,flexDirection:'column',overflow:'hidden',paddingHorizontal:5},listItemText:{color:"rgba(255, 255, 255, 0.6)",fontSize:14},listItemTitle:{fontWeight:'bold',fontSize:16},listSection:{alignItems:'center',backgroundColor:'rgba(255, 255, 255, 0.2)',flex:1,flexDirection:'row',paddingVertical:5,paddingHorizontal:10},listSectionText:{color:"rgba(255, 255, 255, 0.6)",fontSize:14,fontWeight:'normal'},pullToRefresh:{alignItems:'center',flex:1,flexDirection:'column',justifyContent:'center',padding:20},pullToRefreshIcon:{backgroundColor:'transparent',color:"rgba(255, 255, 255, 0.6)",fontSize:20},pullToRefreshText:{backgroundColor:'transparent',color:"rgba(255, 255, 255, 0.6)"},secondaryActionContainer:{alignItems:'center',backgroundColor:n.ColorPalette.blue,borderRadius:3,height:30,justifyContent:'center',margin:.5*n.BoxModel.margin,marginRight:n.BoxModel.margin,width:30},secondaryActionLabel:{color:n.ColorPalette.white},touchableView:{flexDirection:'row'}},f={backgroundColor:n.ColorPalette.appBackground,opacity:.8};e.TINTED_VIEW_DEFAULT=f;var s=(0,o.default)({},l,c);e.default=s},1017,[3,53,522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=t(r(d[7])),h=r(d[8]),p=r(d[9]),y=r(d[10]),v=r(d[11]),_=(function(t){function n(){return(0,o.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return f.default.createElement(h.TouchableOpacity,{accessibilityLabel:'Back',onPress:this.props.onPress},f.default.createElement(y.Icon,{src:y.IconArrowBack,style:[this.props._headerStyles.headerButtonIcon,this.props.style]}))}}]),n})(f.Component);var b=(0,v.connect)(function(t){return{_headerStyles:p.ColorSchemeRegistry.get(t,'Header')}})(_);e.default=b},1018,[2,3,4,5,6,9,10,59,15,438,548,443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),c=l(r(d[6])),h=t(r(d[7])),s=r(d[8]),p=r(d[9]),v=l(r(d[10])),y=(function(t){function l(){return(0,n.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,c.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){var t=this.props,l=t.highlight,n=t.icon,u=t.iconStyle;return h.default.createElement(s.View,{style:l?v.default.highlightedIndicator:null},h.default.createElement(p.Icon,{src:n,style:[v.default.indicator,u]}))}}]),l})(h.Component);e.default=y},1019,[2,3,4,5,6,9,10,59,15,548,1020]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),t={highlightedIndicator:{backgroundColor:o.ColorPalette.blue,borderRadius:16,padding:4},indicator:{backgroundColor:o.ColorPalette.transparent,color:o.ColorPalette.white,fontSize:12,textShadowColor:o.ColorPalette.black,textShadowOffset:{height:-1,width:0}}};e.default=t},1020,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),s=n(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=(function(t){function n(){return(0,u.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return p.default.createElement(c.TouchableOpacity,{onPress:this.props.onValueChange},p.default.createElement(c.Text,{style:this.props.style},this.props.children))}}]),n})(p.Component);e.default=h},1021,[2,3,4,5,6,9,10,59,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=s(r(d[2])),n=s(r(d[3])),o=s(r(d[4])),u=s(r(d[5])),p=s(r(d[6])),c=t(r(d[7])),f=r(d[8]),h=r(d[9]),y=r(d[10]),b=r(d[11]),v=(function(t){function s(){return(0,l.default)(this,s),(0,o.default)(this,(0,u.default)(s).apply(this,arguments))}return(0,p.default)(s,t),(0,n.default)(s,[{key:"render",value:function(){var t=this.props._headerStyles;return c.default.createElement(f.TouchableOpacity,{accessibilityLabel:'Forward',disabled:this.props.disabled,onPress:this.props.onPress},c.default.createElement(f.Text,{style:[t.headerButtonText,this.props.disabled&&t.disabledButtonText,this.props.style]},this.props.t(this.props.labelKey)))}}]),s})(c.Component);var _=(0,y.translate)((0,b.connect)(function(t){return{_headerStyles:h.ColorSchemeRegistry.get(t,'Header')}})(v));e.default=_},1022,[2,3,4,5,6,9,10,59,15,438,726,443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=t(r(d[7])),h=r(d[8]),y=r(d[9]),p=r(d[10]),v=r(d[11]);r(d[12]);var C=(function(t){function n(){return(0,l.default)(this,n),(0,u.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props._styles;return f.default.createElement(h.View,{style:t.headerOverlay},f.default.createElement(h.StatusBar,{backgroundColor:t.statusBar,barStyle:this._getStatusBarContentColor(),translucent:!1}),f.default.createElement(h.SafeAreaView,null,f.default.createElement(h.View,{style:[t.screenHeader,this.props.style]},this.props.children)))}},{key:"_getStatusBarContentColor",value:function(){var t=this.props._styles,n=t.statusBarContent;if(n)return(0,v.isDarkColor)(n)?"dark-content":"light-content";var l=t.statusBar,o=t.screenHeader;return(0,v.isDarkColor)(l||o.backgroundColor)?"light-content":"dark-content"}}]),n})(f.PureComponent);var _=(0,p.connect)(function(t){return{_styles:y.ColorSchemeRegistry.get(t,'Header')}})(C);e.default=_},1023,[2,3,4,5,6,9,10,59,15,438,443,522,1024]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),o=r(d[2]),n=r(d[3]),l=r(d[4]),c=l.BoxModel.padding/2;n.ColorSchemeRegistry.register('Header',{disabledButtonText:{opacity:.6},headerButtonIcon:{alignSelf:'center',color:(0,n.schemeColor)('icon'),fontSize:22,marginRight:12,padding:8},headerButtonText:{color:(0,n.schemeColor)('text'),fontSize:18},headerOverlay:{backgroundColor:(0,n.schemeColor)('background')},headerText:{color:(0,n.schemeColor)('text'),fontSize:18},headerTextWrapper:{alignItems:'center',justifyContent:'center',left:0,position:'absolute',right:0},page:(0,t.default)({},o.StyleSheet.absoluteFillObject,{alignItems:'stretch',flex:1,flexDirection:'column',overflow:'hidden'}),screenHeader:{alignItems:'center',backgroundColor:(0,n.schemeColor)('background'),flexDirection:'row',height:48,justifyContent:'space-between',paddingHorizontal:l.BoxModel.padding,paddingVertical:c},statusBar:(0,n.schemeColor)('statusBar'),statusBarContent:(0,n.schemeColor)('statusBarContent')})},1024,[3,53,15,438,522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=r(d[9]),y=r(d[10]),v=r(d[11]),_=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props._headerStyles;return p.default.createElement(c.View,{pointerEvents:"box-none",style:t.headerTextWrapper},p.default.createElement(c.Text,{style:[t.headerText]},this.props.t(this.props.labelKey)))}}]),n})(p.Component);var x=(0,y.translate)((0,v.connect)(function(t){return{_headerStyles:h.ColorSchemeRegistry.get(t,'Header')}})(_));e.default=x},1025,[2,3,4,5,6,9,10,59,15,438,726,443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),s=l(r(d[4])),f=l(r(d[5])),o=l(r(d[6])),p=t(r(d[7])),c=r(d[8]),h=l(r(d[9])),b=l(r(d[10])),y=l(r(d[11])),v=l(r(d[12])),P=(function(t){function l(){return(0,u.default)(this,l),(0,s.default)(this,(0,f.default)(l).apply(this,arguments))}return(0,o.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props,l=t.onPressBack,u=t.onPressForward;return p.default.createElement(y.default,null,l&&p.default.createElement(h.default,{onPress:l}),p.default.createElement(v.default,{labelKey:this.props.headerLabelKey}),u&&p.default.createElement(b.default,{disabled:this.props.forwardDisabled,labelKey:this.props.forwardLabelKey,onPress:u}))}}]),l})(p.Component),E=(0,c.translate)(P);e.default=E},1026,[2,3,4,5,6,9,10,59,726,1018,1022,1023,1025]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=u(r(d[2])),l=u(r(d[3])),f=u(r(d[4])),o=u(r(d[5])),s=u(r(d[6])),c=t(r(d[7])),p=r(d[8]),h=(function(t){function u(){return(0,n.default)(this,u),(0,f.default)(this,(0,o.default)(u).apply(this,arguments))}return(0,s.default)(u,t),(0,l.default)(u,[{key:"render",value:function(){return c.default.createElement(p.Image,{source:this.props.src,style:this.props.style})}}]),u})(c.Component);e.default=h},1027,[2,3,4,5,6,9,10,59,15]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[2])),s=t(r(d[3])),o=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),c=t(r(d[7])),p=n(r(d[8])),h=r(d[9]),v=t(r(d[10])),_=(function(n){function t(n){var s;return(0,u.default)(this,t),(s=(0,o.default)(this,(0,l.default)(t).call(this,n)))._onPress=s._onPress.bind((0,c.default)((0,c.default)(s))),s}return(0,f.default)(t,n),(0,s.default)(t,[{key:"render",value:function(){return p.default.createElement(v.default,{onPress:this._onPress,style:this.props.style},this.props.children)}},{key:"_onLinkingOpenURLRejected",value:function(n){var t=this.props.onLinkingOpenURLRejected;t&&t(n)}},{key:"_onPress",value:function(){var n=this;h.Linking.openURL(this.props.url).catch(function(t){return n._onLinkingOpenURLRejected(t)})}}]),t})(p.Component);e.default=_},1028,[2,3,4,5,6,9,10,8,59,15,1029]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.Text}});var t=r(d[0])},1029,[15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),p=n(r(d[7])),s=t(r(d[8])),_=n(r(d[9])),h=r(d[10]),v=n(r(d[11])),y=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,u.default)(this,(0,c.default)(n).call(this,t)))._componentDecorator=l._componentDecorator.bind((0,p.default)((0,p.default)(l))),l}return(0,f.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return s.default.createElement(_.default,{componentDecorator:this._componentDecorator},s.default.createElement(h.Text,{selectable:!0},this.props.children))}},{key:"_componentDecorator",value:function(t,n,o){return s.default.createElement(v.default,{key:o,style:this.props.linkStyle,url:t},n)}}]),n})(s.Component);e.default=y},1030,[2,3,4,5,6,9,10,8,59,1031,15,1028]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t,u=r(d[0]),l=(t=u)&&t.__esModule?t:{default:t};e.default=l.default},1031,[1032]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=(function(){function t(t,n){for(var o=0;o<n.length;o++){var u=n[o];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(t,u.key,u)}}return function(n,o,u){return o&&t(n.prototype,o),u&&t(n,u),n}})(),n=(function(t){if(t&&t.__esModule)return t;var n={};if(null!=t)for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o]);return n.default=t,n})(r(d[0])),o=s(r(d[1])),u=s(r(d[2])),c=s(r(d[3])),p=s(r(d[4]));function s(t){return t&&t.__esModule?t:{default:t}}function f(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function l(t,n){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!n||"object"!=typeof n&&"function"!=typeof n?t:n}function h(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function, not "+typeof n);t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),n&&(Object.setPrototypeOf?Object.setPrototypeOf(t,n):t.__proto__=n)}var y=(function(o){function u(){return f(this,u),l(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return h(u,n.Component),t(u,[{key:'parseString',value:function(t){var n=this;if(''===t)return t;var o=this.props.matchDecorator(t);if(!o)return t;var u=[],c=0;return o.forEach(function(o,p){o.index>c&&u.push(t.substring(c,o.index));var s=n.props.hrefDecorator(o.url),f=n.props.textDecorator(o.text),l=n.props.componentDecorator(s,f,p);u.push(l),c=o.lastIndex}),t.length>c&&u.push(t.substring(c)),1===u.length?u[0]:u}},{key:'parse',value:function(t){var o=this,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return'string'==typeof t?this.parseString(t):n.isValidElement(t)&&'a'!==t.type&&'button'!==t.type?n.cloneElement(t,{key:u},this.parse(t.props.children)):Array.isArray(t)?t.map(function(t,n){return o.parse(t,n)}):t}},{key:'render',value:function(){return n.createElement(n.Fragment,null,this.parse(this.props.children))}}]),u})();y.defaultProps={componentDecorator:o.default,hrefDecorator:u.default,matchDecorator:c.default,textDecorator:p.default},e.default=y},1032,[59,1033,1034,1035,1043]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=(function(t){if(t&&t.__esModule)return t;var n={};if(null!=t)for(var u in t)Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n.default=t,n})(r(d[0]));e.default=function(n,u,f){return t.createElement('a',{href:n,key:f},u)}},1033,[59]);
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return t}},1034,[]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=n(r(d[0])),u=n(r(d[1]));function n(t){return t&&t.__esModule?t:{default:t}}var f=new t.default;f.tlds(u.default),e.default=function(t){return f.match(t)}},1035,[1036,1042]);
__d(function(g,r,i,a,m,e,d){'use strict';function t(t){return Array.prototype.slice.call(arguments,1).forEach(function(_){_&&Object.keys(_).forEach(function(s){t[s]=_[s]})}),t}function _(t){return Object.prototype.toString.call(t)}function s(t){return'[object String]'===_(t)}function n(t){return'[object RegExp]'===_(t)}function o(t){return'[object Function]'===_(t)}function h(t){return t.replace(/[.?*+^$[\]\\(){}|-]/g,'\\$&')}var c={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var l={'http:':{validate:function(t,_,s){var n=t.slice(_);return s.re.http||(s.re.http=new RegExp('^\\/\\/'+s.re.src_auth+s.re.src_host_port_strict+s.re.src_path,'i')),s.re.http.test(n)?n.match(s.re.http)[0].length:0}},'https:':'http:','ftp:':'http:','//':{validate:function(t,_,s){var n=t.slice(_);return s.re.no_http||(s.re.no_http=new RegExp('^'+s.re.src_auth+'(?:localhost|(?:(?:'+s.re.src_domain+')\\.)+'+s.re.src_domain_root+')'+s.re.src_port+s.re.src_host_terminator+s.re.src_path,'i')),s.re.no_http.test(n)?_>=3&&':'===t[_-3]?0:_>=3&&'/'===t[_-3]?0:n.match(s.re.no_http)[0].length:0}},'mailto:':{validate:function(t,_,s){var n=t.slice(_);return s.re.mailto||(s.re.mailto=new RegExp('^'+s.re.src_email_name+'@'+s.re.src_host_strict,'i')),s.re.mailto.test(n)?n.match(s.re.mailto)[0].length:0}}},u='a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]',p='biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444'.split('|');function f(t){t.__index__=-1,t.__text_cache__=''}function x(t){var c=t.re=r(d[0])(t.__opts__),l=t.__tlds__.slice();function p(t){return t.replace('%TLDS%',c.src_tlds)}t.onCompile(),t.__tlds_replaced__||l.push(u),l.push(c.src_xn),c.src_tlds=l.join('|'),c.email_fuzzy=RegExp(p(c.tpl_email_fuzzy),'i'),c.link_fuzzy=RegExp(p(c.tpl_link_fuzzy),'i'),c.link_no_ip_fuzzy=RegExp(p(c.tpl_link_no_ip_fuzzy),'i'),c.host_fuzzy_test=RegExp(p(c.tpl_host_fuzzy_test),'i');var x=[];function z(t,_){throw new Error('(LinkifyIt) Invalid schema "'+t+'": '+_)}t.__compiled__={},Object.keys(t.__schemas__).forEach(function(h){var c=t.__schemas__[h];if(null!==c){var l,u={validate:null,link:null};if(t.__compiled__[h]=u,'[object Object]'===_(c))return n(c.validate)?u.validate=(l=c.validate,function(t,_){var s=t.slice(_);return l.test(s)?s.match(l)[0].length:0}):o(c.validate)?u.validate=c.validate:z(h,c),void(o(c.normalize)?u.normalize=c.normalize:c.normalize?z(h,c):u.normalize=function(t,_){_.normalize(t)});s(c)?x.push(h):z(h,c)}}),x.forEach(function(_){t.__compiled__[t.__schemas__[_]]&&(t.__compiled__[_].validate=t.__compiled__[t.__schemas__[_]].validate,t.__compiled__[_].normalize=t.__compiled__[t.__schemas__[_]].normalize)}),t.__compiled__['']={validate:null,normalize:function(t,_){_.normalize(t)}};var y=Object.keys(t.__compiled__).filter(function(_){return _.length>0&&t.__compiled__[_]}).map(h).join('|');t.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+c.src_ZPCc+'))('+y+')','i'),t.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+c.src_ZPCc+'))('+y+')','ig'),t.re.pretest=RegExp('('+t.re.schema_test.source+')|('+t.re.host_fuzzy_test.source+')|@','i'),f(t)}function z(t,_){var s=t.__index__,n=t.__last_index__,o=t.__text_cache__.slice(s,n);this.schema=t.__schema__.toLowerCase(),this.index=s+_,this.lastIndex=n+_,this.raw=o,this.text=o,this.url=o}function y(t,_){var s=new z(t,_);return t.__compiled__[s.schema].normalize(s,t),s}function v(_,s){if(!(this instanceof v))return new v(_,s);var n;s||(n=_,Object.keys(n||{}).reduce(function(t,_){return t||c.hasOwnProperty(_)},!1)&&(s=_,_={})),this.__opts__=t({},c,s),this.__index__=-1,this.__last_index__=-1,this.__schema__='',this.__text_cache__='',this.__schemas__=t({},l,_),this.__compiled__={},this.__tlds__=p,this.__tlds_replaced__=!1,this.re={},x(this)}v.prototype.add=function(t,_){return this.__schemas__[t]=_,x(this),
__d(function(g,r,i,a,m,e,d){'use strict';m.exports=function(_){var s={};s.src_Any=r(d[0]).source,s.src_Cc=r(d[1]).source,s.src_Z=r(d[2]).source,s.src_P=r(d[3]).source,s.src_ZPCc=[s.src_Z,s.src_P,s.src_Cc].join('|'),s.src_ZCc=[s.src_Z,s.src_Cc].join('|');return s.src_pseudo_letter="(?:(?![><\uff5c]|"+s.src_ZPCc+')'+s.src_Any+')',s.src_ip4='(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)',s.src_auth='(?:(?:(?!'+s.src_ZCc+'|[@/\\[\\]()]).)+@)?',s.src_port='(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?',s.src_host_terminator="(?=$|[><\uff5c]|"+s.src_ZPCc+')(?!-|_|:\\d|\\.-|\\.(?!$|'+s.src_ZPCc+'))',s.src_path="(?:[/?#](?:(?!"+s.src_ZCc+"|[><\uff5c]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+s.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+s.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+s.src_ZCc+"|[}]).)*\\}|\\\"(?:(?!"+s.src_ZCc+"|[\"]).)+\\\"|\\'(?:(?!"+s.src_ZCc+"|[']).)+\\'|\\'(?="+s.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+s.src_ZCc+'|[.]).|'+(_&&_['---']?'\\-(?!--(?:[^-]|$))(?:-*)|':'\\-+|')+'\\,(?!'+s.src_ZCc+").|\\!(?!"+s.src_ZCc+"|[!]).|\\?(?!"+s.src_ZCc+"|[?]).)+|\\/)?",s.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',s.src_xn='xn--[a-z0-9\\-]{1,59}',s.src_domain_root='(?:'+s.src_xn+'|'+s.src_pseudo_letter+"{1,63})",s.src_domain='(?:'+s.src_xn+"|(?:"+s.src_pseudo_letter+")|(?:"+s.src_pseudo_letter+'(?:-|'+s.src_pseudo_letter+'){0,61}'+s.src_pseudo_letter+"))",s.src_host="(?:(?:(?:(?:"+s.src_domain+')\\.)*'+s.src_domain+"))",s.tpl_host_fuzzy='(?:'+s.src_ip4+"|(?:(?:(?:"+s.src_domain+")\\.)+(?:%TLDS%)))",s.tpl_host_no_ip_fuzzy='(?:(?:(?:'+s.src_domain+')\\.)+(?:%TLDS%))',s.src_host_strict=s.src_host+s.src_host_terminator,s.tpl_host_fuzzy_strict=s.tpl_host_fuzzy+s.src_host_terminator,s.src_host_port_strict=s.src_host+s.src_port+s.src_host_terminator,s.tpl_host_port_fuzzy_strict=s.tpl_host_fuzzy+s.src_port+s.src_host_terminator,s.tpl_host_port_no_ip_fuzzy_strict=s.tpl_host_no_ip_fuzzy+s.src_port+s.src_host_terminator,s.tpl_host_fuzzy_test='localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:'+s.src_ZPCc+'|>|$))',s.tpl_email_fuzzy="(^|[><\uff5c]|\"|\\(|"+s.src_ZCc+")("+s.src_email_name+'@'+s.tpl_host_fuzzy_strict+')',s.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+s.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+s.tpl_host_port_fuzzy_strict+s.src_path+')',s.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+s.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+s.tpl_host_port_no_ip_fuzzy_strict+s.src_path+')',s}},1037,[1038,1039,1040,1041]);
__d(function(g,r,i,a,m,e,d){m.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},1038,[]);
__d(function(g,r,i,a,m,e,d){m.exports=/[\0-\x1F\x7F-\x9F]/},1039,[]);
__d(function(g,r,i,a,m,e,d){m.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},1040,[]);
__d(function(g,r,i,a,m,e,d){m.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},1041,[]);
__d(function(g,r,i,a,m,e,d){m.exports=["aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","active","actor","ad","adac","ads","adult","ae","aeg","aero","aetna","af","afamilycompany","afl","africa","ag","agakhan","agency","ai","aig","aigo","airbus","airforce","airtel","akdn","al","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blanco","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnl","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","budapest","bugatti","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","cartier","casa","case","caseih","cash","casino","cat","catering","catholic","cba","cbn","cbre","cbs","cc","cd","ceb","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","chase","chat","cheap","chintai","christmas","chrome","chrysler","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","coop","corsica","country","coupon","coupons","courses","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dodge","dog","doha","domains","dot","download","drive","dtv","dubai","duck","dunlop","duns","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epost","epson","equipment","er","ericsson","erni","es","esq","estate","esurance","et","etisalat","eu","eurovision","eus","events","everbank","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gb","gbiz","gd","gdn","ge","ge
__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return t}},1043,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),u=l(r(d[4])),f=l(r(d[5])),s=l(r(d[6])),c=l(r(d[7])),p=l(r(d[8])),v=t(r(d[9])),h=r(d[10]),y=r(d[11]),_=(function(t){function l(){return(0,u.default)(this,l),(0,s.default)(this,(0,c.default)(l).apply(this,arguments))}return(0,p.default)(l,t),(0,f.default)(l,[{key:"render",value:function(){var t=this.props.color,l=void 0===t?y.ColorPalette.white:t,u=this.props.size,f=void 0===u?'large':u;'medium'===f&&(f='large');var s=(0,o.default)({animating:!0,color:l},this.props,{size:f});return v.default.createElement(h.ActivityIndicator,(0,n.default)({animating:!0},s,{size:f}))}}]),l})(v.Component);e.default=_},1044,[2,3,24,53,4,5,6,9,10,59,15,522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),p=n(r(d[6])),s=n(r(d[7])),c=n(r(d[8])),h=t(r(d[9])),v=r(d[10]),y=(function(t){function n(){return(0,f.default)(this,n),(0,p.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props,n=t.children,f=(0,l.default)(t,["children"]);return h.default.createElement(v.Modal,(0,u.default)({animationType:'slide',supportedOrientations:['landscape','portrait'],transparent:!0},f),n)}}]),n})(h.Component);e.default=y},1045,[2,3,24,55,4,5,6,9,10,59,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),c=t(r(d[7])),p=r(d[8]),h=r(d[9]),v=r(d[10]),y=l(r(d[11])),T=(function(t){function l(){return(0,u.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,s.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props.t;return c.default.createElement(p.View,{style:y.default.pullToRefresh},c.default.createElement(p.Text,{style:y.default.pullToRefreshText},t('sectionList.pullToRefresh')),c.default.createElement(v.Icon,{src:v.IconMenuDown,style:y.default.pullToRefreshIcon}))}}]),l})(c.Component),R=(0,h.translate)(T);e.default=R},1046,[2,3,4,5,6,9,10,59,15,726,548,1017]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),y=t(r(d[8])),v=n(r(d[9])),p=r(d[10]),b=n(r(d[11])),h=n(r(d[12])),_=n(r(d[13])),k=n(r(d[14])),A=(function(t){function n(t){var o;return(0,l.default)(this,n),(o=(0,u.default)(this,(0,s.default)(n).call(this,t)))._renderItemLine=o._renderItemLine.bind((0,c.default)((0,c.default)(o))),o._renderItemLines=o._renderItemLines.bind((0,c.default)((0,c.default)(o))),o}return(0,f.default)(n,t),(0,o.default)(n,[{key:"_renderItemLine",value:function(t,n){return t?y.default.createElement(_.default,{key:n,numberOfLines:1,style:k.default.listItemText},t):null}},{key:"_renderItemLines",value:function(t){return t&&t.length?t.map(this._renderItemLine):null}},{key:"_renderSecondaryAction",value:function(){var t=this.props.secondaryAction;return y.default.createElement(h.default,{onClick:t,style:k.default.secondaryActionContainer},y.default.createElement(_.default,{style:k.default.secondaryActionLabel},"+"))}},{key:"render",value:function(){var t,n=this.props,l=n.item,o=n.slideActions,u=l.id;if(o){t=[];var s=o,f=Array.isArray(s),c=0;for(s=f?s:s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var h;if(f){if(c>=s.length)break;h=s[c++]}else{if((c=s.next()).done)break;h=c.value}var _=h;t.push({backgroundColor:_.backgroundColor,onPress:_.onPress.bind(void 0,u),text:_.text})}}return y.default.createElement(v.default,{autoClose:!0,backgroundColor:p.ColorPalette.transparent,right:t},y.default.createElement(b.default,{item:l,onPress:this.props.onPress},this.props.secondaryAction&&this._renderSecondaryAction()))}}]),n})(y.Component);e.default=A},1047,[2,3,4,5,6,9,10,8,59,1048,522,543,553,1029,1017]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(t[s]=o[s])}return t},n=f(r(d[0])),o=f(r(d[1])),s=f(r(d[2])),h=f(r(d[3])),p=f(r(d[4])),l=f(r(d[5])),u=r(d[6]);function f(t){return t&&t.__esModule?t:{default:t}}var c=(0,l.default)({displayName:'SwipeoutBtn',propTypes:{backgroundColor:p.default.string,color:p.default.string,component:p.default.node,onPress:p.default.func,text:p.default.node,type:p.default.string,underlayColor:p.default.string},getDefaultProps:function(){return{backgroundColor:null,color:null,component:null,underlayColor:null,height:0,onPress:null,disabled:!1,text:'Click me',type:'',width:0}},render:function(){var t=this.props,n=[s.default.swipeoutBtn];'delete'===t.type?n.push(s.default.colorDelete):'primary'===t.type?n.push(s.default.colorPrimary):'secondary'===t.type&&n.push(s.default.colorSecondary),t.backgroundColor&&n.push([{backgroundColor:t.backgroundColor}]),n.push([{height:t.height,width:t.width}]);var p=[];p.push([{height:t.height,width:t.width}]);var l=[s.default.swipeoutBtnText];return t.color&&l.push({color:t.color}),h.default.createElement(o.default,{onPress:this.props.onPress,underlayColor:this.props.underlayColor,disabled:this.props.disabled,style:[s.default.swipeoutBtnTouchable,n],textStyle:l},t.component?h.default.createElement(u.View,{style:p},t.component):t.text)}}),b=(0,l.default)({displayName:'Swipeout',mixins:[n.default.Mixin],propTypes:{autoClose:p.default.bool,backgroundColor:p.default.string,close:p.default.bool,left:p.default.array,onOpen:p.default.func,onClose:p.default.func,right:p.default.array,scroll:p.default.func,style:(u.ViewPropTypes||u.View.propTypes).style,sensitivity:p.default.number,buttonWidth:p.default.number,disabled:p.default.bool},getDefaultProps:function(){return{disabled:!1,rowID:-1,sectionID:-1,sensitivity:50}},getInitialState:function(){return{autoClose:this.props.autoClose||!1,btnWidth:0,btnsLeftWidth:0,btnsRightWidth:0,contentHeight:0,contentPos:0,contentWidth:0,openedRight:!1,swiping:!1,tweenDuration:160,timeStart:null}},componentWillMount:function(){var t=this;this._panResponder=u.PanResponder.create({onStartShouldSetPanResponder:function(t,n){return!0},onStartShouldSetPanResponderCapture:function(n,o){return t.state.openedLeft||t.state.openedRight},onMoveShouldSetPanResponderCapture:function(n,o){return Math.abs(o.dx)>t.props.sensitivity&&Math.abs(o.dy)<=t.props.sensitivity},onPanResponderGrant:this._handlePanResponderGrant,onPanResponderMove:this._handlePanResponderMove,onPanResponderRelease:this._handlePanResponderEnd,onPanResponderTerminate:this._handlePanResponderEnd,onShouldBlockNativeResponder:function(t,n){return!1},onPanResponderTerminationRequest:function(){return!1}})},componentWillReceiveProps:function(t){t.close&&this._close(),t.openRight&&this._openRight(),t.openLeft&&this._openLeft()},_handlePanResponderGrant:function(t,n){var o=this;this.props.disabled||(this.state.openedLeft||this.state.openedRight?this._callOnClose():this._callOnOpen(),this.refs.swipeoutContent.measure(function(t,n,s,h){var p=o.props.buttonWidth||s/5;o.setState({btnWidth:p,btnsLeftWidth:o.props.left?p*o.props.left.length:0,btnsRightWidth:o.props.right?p*o.props.right.length:0,swiping:!0,timeStart:(new Date).getTime()})}))},_handlePanResponderMove:function(t,n){if(!this.props.disabled){var o=n.dx,s=n.dy,h=this.state.btnsLeftWidth,p=this.state.btnsRightWidth;if(this.state.openedRight)o=n.dx-p;else if(this.state.openedLeft)o=n.dx+h;var l=Math.abs(o)>Math.abs(s);this.props.scroll&&(l?this.props.scroll(!1):this.props.scroll(!0)),this.state.swiping&&(o<0&&this.props.right?this.setState({contentPos:Math.min(o,0)}):o>0&&this.props.left&&this.setState({contentPos:Math.max(o,0)}))}},_handlePanResponderEnd:function(t,n){if(!this.props.disabled){var o=n.dx,s=this.state.contentPos,h=this.state.contentWidth,p=this.state.btnsLeftWidth,l=this.state.btnsRightWidth,u=.33*h,f=o>u||o>p/2,c=o<-u||o<-l/2;if(t
__d(function(g,r,i,a,m,e,d){var n,t;n=this,t=function(){return(function(n){function t(o){if(u[o])return u[o].exports;var c=u[o]={exports:{},id:o,loaded:!1};return n[o].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}var u={};return t.m=n,t.c=u,t.p="",t(0)})({0:function(n,t,u){n.exports=u(90)},1:function(n,t){function u(){v=!1,f.length?h=f.concat(h):p=-1,h.length&&o()}function o(){if(!v){var n=setTimeout(u);v=!0;for(var t=h.length;t;){for(f=h,h=[];++p<t;)f&&f[p].run();p=-1,t=h.length}f=null,v=!1,clearTimeout(n)}}function c(n,t){this.fun=n,this.array=t}function s(){}var f,l=n.exports={},h=[],v=!1,p=-1;l.nextTick=function(n){var t=new Array(arguments.length-1);if(arguments.length>1)for(var u=1;u<arguments.length;u++)t[u-1]=arguments[u];h.push(new c(n,t)),1!==h.length||v||setTimeout(o,0)},c.prototype.run=function(){this.fun.apply(null,this.array)},l.title="browser",l.browser=!0,l.env={},l.argv=[],l.version="",l.versions={},l.on=s,l.addListener=s,l.once=s,l.off=s,l.removeListener=s,l.removeAllListeners=s,l.emit=s,l.binding=function(n){throw new Error("process.binding is not supported")},l.cwd=function(){return"/"},l.chdir=function(n){throw new Error("process.chdir is not supported")},l.umask=function(){return 0}},90:function(n,t,u){"use strict";function o(n){return n&&n.__esModule?n:{default:n}}Object.defineProperty(t,"__esModule",{value:!0});var c=u(165),s=o(c),f=o(u(91)),l=c.easeInOutQuad,h={ADDITIVE:"ADDITIVE",DESTRUCTIVE:"DESTRUCTIVE"},v={_rafID:null,getInitialState:function(){return{tweenQueue:[]}},componentWillUnmount:function(){f.default.cancel(this._rafID),this._rafID=-1},tweenState:function(n,t){var u=this,o=t.easing,c=t.duration,s=t.delay,v=t.beginValue,p=t.endValue,I=t.onEnd,w=t.stackBehavior;this.setState(function(t){var M=t,O=void 0,b=void 0;if("string"==typeof n)O=n,b=n;else{for(var x=0;x<n.length-1;x++)M=M[n[x]];O=n[n.length-1],b=n.join("|")}var D={easing:o||l,duration:null==c?300:c,delay:null==s?0:s,beginValue:null==v?M[O]:v,endValue:p,onEnd:I,stackBehavior:w||"ADDITIVE"},T=t.tweenQueue;return D.stackBehavior===h.DESTRUCTIVE&&(T=t.tweenQueue.filter(function(n){return n.pathHash!==b})),T.push({pathHash:b,config:D,initTime:Date.now()+D.delay}),M[O]=D.endValue,1===T.length&&(u._rafID=(0,f.default)(u._rafCb)),{tweenQueue:T}})},getTweeningValue:function(n){var t=this.state,u=void 0,o=void 0;if("string"==typeof n)u=t[n],o=n;else{u=t;for(var c=0;c<n.length;c++)u=u[n[c]];o=n.join("|")}var s=Date.now();for(c=0;c<t.tweenQueue.length;c++){var f=t.tweenQueue[c],l=f.pathHash,h=f.initTime,v=f.config;if(l===o){var p=s-h>v.duration?v.duration:Math.max(0,s-h);u+=(0===v.duration?v.endValue:v.easing(p,v.beginValue,v.endValue,v.duration))-v.endValue}}return u},_rafCb:function(){var n=this.state;if(0!==n.tweenQueue.length){for(var t=Date.now(),u=[],o=0;o<n.tweenQueue.length;o++){var c=n.tweenQueue[o],s=c.initTime,l=c.config;t-s<l.duration?u.push(c):l.onEnd&&l.onEnd()}-1!==this._rafID&&(this.setState({tweenQueue:u}),this._rafID=(0,f.default)(this._rafCb))}}};t.default={Mixin:v,easingTypes:s.default,stackBehavior:h},n.exports=t.default},91:function(n,t,u){for(var o=u(92),c="undefined"==typeof window?{}:window,s=["moz","webkit"],f="AnimationFrame",l=c.requestAnimationFrame,h=c.cancelAnimationFrame||c.cancelRequestAnimationFrame,v=0;v<s.length&&!l;v++)l=c[s[v]+"Request"+f],h=c[s[v]+"Cancel"+f]||c[s[v]+"CancelRequest"+f];if(!l||!h){var p=0,I=0,w=[];l=function(n){if(0===w.length){var t=o(),u=Math.max(0,16.666666666666668-(t-p));p=u+t,setTimeout(function(){var n=w.slice(0);w.length=0;for(var t=0;t<n.length;t++)if(!n[t].cancelled)try{n[t].callback(p)}catch(n){setTimeout(function(){throw n},0)}},Math.round(u))}return w.push({handle:++I,callback:n,cancelled:!1}),I},h=function(n){for(var t=0;t<w.length;t++)w[t].handle===n&&(w[t].cancelled=!0)}}n.exports=function(n){return l.call(c,n)},n.exports.cancel=function(){h.apply(c,arguments)}},92:function(n,t,u){(function(t){(function(){var u,o,c;"undefined"!=typeof performance&&null!==performance&&performance.now?n.exports=function(){return performance.now()}:void 0!==t&&null!==t&&t.hrtime?(n.e
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var s=Object.assign||function(t){for(var s=1;s<arguments.length;s++){var o=arguments[s];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t},o=u(r(d[1])),n=u(r(d[2])),l=u(r(d[3])),p=r(d[4]);function u(t){return t&&t.__esModule?t:{default:t}}var c=p.StyleSheet.create({button:{flexDirection:'row',alignSelf:'stretch',justifyContent:'center'},textButton:{fontSize:14,alignSelf:'center'},opacity:{opacity:.8}}),y=(0,l.default)({displayName:'NativeButton',propTypes:s({},p.TouchableWithoutFeedback.propTypes,{textStyle:n.default.any,disabledStyle:n.default.any,children:n.default.node.isRequired,underlayColor:n.default.string,background:n.default.any}),statics:{isAndroid:'android'===p.Platform.OS},getDefaultProps:function(){return{textStyle:null,disabledStyle:null,underlayColor:null}},_renderText:function(){return'string'!=typeof this.props.children?this.props.children:o.default.createElement(p.Text,{numberOfLines:1,ellipsizeMode:'ios'===p.Platform.OS?'clip':'tail',style:[c.textButton,this.props.textStyle]},this.props.children)},render:function(){var n=this.props.disabled?this.props.disabledStyle||c.opacity:{},l={accessibilityComponentType:this.props.accessibilityComponentType,accessibilityTraits:this.props.accessibilityTraits,accessible:this.props.accessible,delayLongPress:this.props.delayLongPress,delayPressIn:this.props.delayPressIn,delayPressOut:this.props.delayPressOut,disabled:this.props.disabled,hitSlop:this.props.hitSlop,onLayout:this.props.onLayout,onPress:this.props.onPress,onPressIn:this.props.onPressIn,onPressOut:this.props.onPressOut,onLongPress:this.props.onLongPress,pressRetentionOffset:this.props.pressRetentionOffset};return y.isAndroid?(l=t(l,{background:this.props.background||p.TouchableNativeFeedback.SelectableBackground()}),o.default.createElement(p.TouchableNativeFeedback,l,o.default.createElement(p.View,{style:[c.button,this.props.style,n]},this._renderText()))):o.default.createElement(p.TouchableHighlight,s({},l,{style:[c.button,this.props.style,n],underlayColor:this.props.underlayColor}),this._renderText())}});e.default=y},1050,[24,59,423,282,15]);
__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0});var o=r(d[0]).StyleSheet.create({swipeout:{backgroundColor:'#dbddde',overflow:'hidden'},swipeoutBtnTouchable:{flex:1},swipeoutBtn:{alignItems:'center',backgroundColor:'#b6bec0',flex:1,justifyContent:'center',overflow:'hidden'},swipeoutBtnText:{color:'#fff',textAlign:'center'},swipeoutBtns:{bottom:0,flex:1,flexDirection:'row',position:'absolute',right:0,top:0},swipeoutContent:{},colorDelete:{backgroundColor:'#fb3d38'},colorPrimary:{backgroundColor:'#006fff'},colorSecondary:{backgroundColor:'#fd9427'}});e.default=o},1051,[15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),c=t(r(d[7])),p=l(r(d[8])),v=l(r(d[9])),y=l(r(d[10])),h=(function(t){function l(){return(0,u.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,s.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props.section.section;return c.default.createElement(p.default,{style:y.default.listSection},c.default.createElement(v.default,{style:y.default.listSectionText},t.title))}}]),l})(c.Component);e.default=h},1052,[2,3,4,5,6,9,10,59,553,1029,1017]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),p=t(r(d[8])),h=r(d[9]),y=r(d[10]),v=r(d[11]),_=n(r(d[12])),I=(function(t){function n(t){var u;return(0,l.default)(this,n),(u=(0,o.default)(this,(0,s.default)(n).call(this,t))).state={pageIndex:u._validatePageIndex(t.defaultPage)},u._maybeRefreshSelectedPage=u._maybeRefreshSelectedPage.bind((0,f.default)((0,f.default)(u))),u}return(0,c.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props.disabled,n=this.props.pages.filter(function(t){return t.component});return p.default.createElement(h.View,{style:[_.default.pagedListContainer,t?_.default.pagedListContainerDisabled:null]},n.length>1?this._renderPagedList(t):p.default.createElement(n[0].component,{disabled:t,style:_.default.pagedList}))}},{key:"_getIndicatorStyle",value:function(t){return this.state.pageIndex===t?_.default.pageIndicatorActive:null}},{key:"_maybeRefreshSelectedPage",value:function(){var t,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],l=this.props.pages[this.state.pageIndex];l&&(t=l.component)&&(t.WrappedComponent||t).refresh.call(t,this.props.dispatch,n)}},{key:"_onSelectPage",value:function(t){var n=this;return function(){t=n._validatePageIndex(t);var l=n.props.onSelectPage;l&&l(t),n.setState({pageIndex:t},n._maybeRefreshSelectedPage)}}},{key:"_renderPage",value:function(t,n){return t.component?p.default.createElement(h.View,{style:_.default.pageContainer},p.default.createElement(t.component,{disabled:n})):null}},{key:"_renderPagedList",value:function(t){var n=this,l=this.props.pages,u=this.state.pageIndex;return p.default.createElement(h.View,{style:_.default.pagedListContainer},this._renderPage(l[u],t),p.default.createElement(h.SafeAreaView,{style:_.default.pageIndicatorContainer},l.map(function(l,u){return n._renderPageIndicator(l,u,t)})))}},{key:"_renderPageIndicator",value:function(t,n,l){return t.component?p.default.createElement(h.TouchableOpacity,{disabled:l,key:n,onPress:this._onSelectPage(n),style:_.default.pageIndicator},p.default.createElement(h.View,{style:_.default.pageIndicatorContent},p.default.createElement(y.Icon,{src:t.icon,style:[_.default.pageIndicatorIcon,this._getIndicatorStyle(n)]}),p.default.createElement(h.Text,{style:[_.default.pageIndicatorText,this._getIndicatorStyle(n)]},t.title))):null}},{key:"_validatePageIndex",value:function(t){var n=this.props.pages.filter(function(t){return t.component}).length-1;return Math.max(0,Math.min(n,t))}}]),n})(p.Component),P=(0,v.connect)()(I);e.default=P},1053,[2,3,4,5,6,9,10,8,59,15,548,443,1017]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=u(r(d[2])),l=u(r(d[3])),o=u(r(d[4])),f=u(r(d[5])),s=u(r(d[6])),c=t(r(d[7])),h=r(d[8]),p=(function(t){function u(){return(0,n.default)(this,u),(0,o.default)(this,(0,f.default)(u).apply(this,arguments))}return(0,s.default)(u,t),(0,l.default)(u,[{key:"render",value:function(){var t=this.props,u=t.children,n=t.onPress;return n?c.default.createElement(h.TouchableWithoutFeedback,{onPress:n},u):u}}]),u})(c.Component);e.default=p},1054,[2,3,4,5,6,9,10,59,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),o=n(r(d[3])),p=n(r(d[4])),f=n(r(d[5])),u=n(r(d[6])),l=t(r(d[7])),c=r(d[8]),h=n(r(d[9])),y=(function(t){function n(){return(0,s.default)(this,n),(0,p.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,u.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){return l.default.createElement(c.SafeAreaView,{style:h.default.container},l.default.createElement(c.SectionList,{ListEmptyComponent:this.props.ListEmptyComponent,keyExtractor:this.props.keyExtractor,onRefresh:this.props.onRefresh,refreshing:this.props.refreshing,renderItem:this.props.renderItem,renderSectionHeader:this.props.renderSectionHeader,sections:this.props.sections,style:h.default.list}))}}]),n})(l.Component);e.default=y},1055,[2,3,4,5,6,9,10,59,15,1017]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),f=n(r(d[6])),h=n(r(d[7])),c=n(r(d[8])),p=n(r(d[9])),v=t(r(d[10])),w=r(d[11]),y=r(d[12]),_=n(r(d[13])),k=(function(t){function n(t){var o;(0,l.default)(this,n),o=(0,u.default)(this,(0,f.default)(n).call(this,t));var s=w.Dimensions.get('window'),h=s.height,c=s.width,v=t.position,y=h;return'left'!==v&&'right'!==v||(y=c),o.state={showOverlay:!1,sliderAnimation:new w.Animated.Value(0),positionOffset:y},o._onHardwareBackPress=o._onHardwareBackPress.bind((0,p.default)((0,p.default)(o))),o._onHide=o._onHide.bind((0,p.default)((0,p.default)(o))),o}return(0,c.default)(n,t),(0,h.default)(n,null,[{key:"getDerivedStateFromProps",value:function(t,n){return{showOverlay:t.show||n.showOverlay}}}]),(0,h.default)(n,[{key:"componentDidMount",value:function(){y.BackButtonRegistry.addListener(this._onHardwareBackPress,!0),this._mounted=!0,this._setShow(this.props.show)}},{key:"componentDidUpdate",value:function(t){var n=this.props.show;t.show!==n&&this._setShow(n)}},{key:"componentWillUnmount",value:function(){y.BackButtonRegistry.removeListener(this._onHardwareBackPress),this._mounted=!1}},{key:"render",value:function(){return this.state.showOverlay?v.default.createElement(w.View,{pointerEvents:"box-none",style:_.default.sliderViewContainer},v.default.createElement(w.TouchableWithoutFeedback,{onPress:this._onHide},v.default.createElement(w.View,{style:_.default.sliderViewShadow})),v.default.createElement(w.Animated.View,{pointerEvents:"box-none",style:this._getContentStyle()},this.props.children)):null}},{key:"_getContentStyle",value:function(){var t=(0,s.default)({},this.props.style,_.default.sliderViewContent),n=this.state.positionOffset;switch(this.props.position){case'bottom':(0,o.default)(t,{bottom:-n,left:0,right:0,top:n},{transform:[{translateY:this.state.sliderAnimation}]});break;case'left':(0,o.default)(t,{bottom:0,left:-n,right:n,top:0},{transform:[{translateX:this.state.sliderAnimation}]})}return t}},{key:"_onHardwareBackPress",value:function(){var t=this.props.onHide;return'function'==typeof t&&t()}},{key:"_onHide",value:function(){var t=this;this._setShow(!1).then(function(){var n=t.props.onHide;n&&n()})}},{key:"_setShow",value:function(t){var n=this;return new Promise(function(o){if(n._mounted){var s=n.state.positionOffset,l=n.props.position,u=s;'bottom'!==l&&'right'!==l||(u=-s),w.Animated.timing(n.state.sliderAnimation,{duration:200,toValue:t?u:0,useNativeDriver:!0}).start(function(s){s.finished&&n._mounted&&!t&&n.setState({showOverlay:!1},function(){n.forceUpdate()}),o()})}else o()})}}]),n})(v.PureComponent);e.default=k},1056,[2,3,24,53,4,6,9,5,10,8,59,15,1057,1059]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BackButtonRegistry",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1057,[3,1058]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),l=new((function(){function t(){(0,n.default)(this,t),this._listeners=[]}return(0,s.default)(t,[{key:"addListener",value:function(t){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?this._listeners.splice(0,0,t):this._listeners.push(t)}},{key:"removeListener",value:function(t){this._listeners=this._listeners.filter(function(n){return n!==t})}},{key:"onHardwareBackPress",value:function(){var t=this._listeners,n=Array.isArray(t),s=0;for(t=n?t:t["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(n){if(s>=t.length)break;l=t[s++]}else{if((s=t.next()).done)break;l=s.value}if(!0===l())return!0}return!1}}]),t})());e.default=l},1058,[3,4,5]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),o=r(d[2]),u=r(d[3]),n={sliderViewContainer:(0,l.default)({},o.StyleSheet.absoluteFillObject,{zIndex:u.OVERLAY_Z_INDEX}),sliderViewContent:{position:'absolute'},sliderViewShadow:(0,l.default)({},o.StyleSheet.absoluteFillObject,{backgroundColor:'rgba(0, 0, 0, 0.5)'})};e.default=n},1059,[3,53,15,1060]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.OVERLAY_Z_INDEX=void 0;e.OVERLAY_Z_INDEX=1e3},1060,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.Switch}});var t=r(d[0])},1061,[15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),s=n(r(d[6])),c=n(r(d[7])),p=t(r(d[8])),v=r(d[9]),y=r(d[10]),E=(0,c.default)({},v.StyleSheet.absoluteFillObject,{alignItems:'center',justifyContent:'center'}),h=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props,n=t.children,l=t.style;return p.default.createElement(v.View,{pointerEvents:"box-none",style:E},p.default.createElement(v.View,{pointerEvents:"none",style:[E,y.TINTED_VIEW_DEFAULT,l]}),p.default.createElement(v.View,{pointerEvents:"box-none",style:E},n))}}]),n})(p.Component);e.default=h},1062,[2,3,4,5,6,9,10,53,59,15,1017]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),c=(function(t){function c(){return(0,u.default)(this,c),(0,f.default)(this,(0,l.default)(c).apply(this,arguments))}return(0,o.default)(c,t),(0,n.default)(c,null,[{key:"refresh",value:function(){}}]),c})(r(d[6]).Component);e.default=c},1063,[3,4,5,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),l=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),p=t(r(d[8])),y=r(d[9]),_=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,u.default)(this,(0,s.default)(n).call(this,t)))._getItemKey=l._getItemKey.bind((0,c.default)((0,c.default)(l))),l._onPress=l._onPress.bind((0,c.default)((0,c.default)(l))),l._onRefresh=l._onRefresh.bind((0,c.default)((0,c.default)(l))),l._renderItem=l._renderItem.bind((0,c.default)((0,c.default)(l))),l._renderListEmptyComponent=l._renderListEmptyComponent.bind((0,c.default)((0,c.default)(l))),l._renderSectionHeader=l._renderSectionHeader.bind((0,c.default)((0,c.default)(l))),l}return(0,f.default)(n,t),(0,l.default)(n,null,[{key:"createSection",value:function(t,n){return{data:[],key:n,title:t}}}]),(0,l.default)(n,[{key:"render",value:function(){var t=this.props,n=t.renderListEmptyComponent,o=void 0===n?this._renderListEmptyComponent():n,u=t.sections;return p.default.createElement(y.SectionList,{ListEmptyComponent:o,keyExtractor:this._getItemKey,onItemClick:this.props.onPress,onRefresh:this._onRefresh,refreshing:!1,renderItem:this._renderItem,renderSectionHeader:this._renderSectionHeader,sections:u})}},{key:"_getItemKey",value:function(t,n){return n+"-"+t.key}},{key:"_onPress",value:function(t){var n=this.props,o=n.disabled,u=n.onPress;return!o&&t&&'function'==typeof u?function(){return u(t)}:null}},{key:"_onRefresh",value:function(){var t=this.props.onRefresh;'function'==typeof t&&t()}},{key:"_onSecondaryAction",value:function(t){var n=this;return function(){n.props.onSecondaryAction(t)}}},{key:"_renderItem",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',o=t.item,u=o.id,s=o.url;return void 0===o.title?null:p.default.createElement(y.NavigateSectionListItem,{item:o,key:n,onPress:s?this._onPress(s):void 0,secondaryAction:s?void 0:this._onSecondaryAction(u),slideActions:this.props.slideActions})}},{key:"_renderListEmptyComponent",value:function(){return'function'==typeof this.props.onRefresh?p.default.createElement(y.NavigateSectionListEmptyComponent,null):null}},{key:"_renderSectionHeader",value:function(t){return p.default.createElement(y.NavigateSectionListSectionHeader,{section:t})}}]),n})(p.Component);e.default=_},1064,[2,3,4,6,9,5,10,8,59,541]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getFieldValue=function(t){var l;return'string'==typeof t?t:null==t?void 0:null==(l=t.target)?void 0:l.value}},1065,[]);
__d(function(g,r,i,a,m,e,d){},1066,[]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.inputDialog=e.brandedDialog=e.bottomSheetStyles=e.PLACEHOLDER_COLOR=e.MD_ITEM_MARGIN_PADDING=e.MD_ITEM_HEIGHT=e.MD_FONT_SIZE=e.FIELD_UNDERLINE=void 0;var t=o(r(d[1])),l=r(d[2]),n=r(d[3]),c=r(d[4]),s=r(d[5]),b=c.ColorPalette.transparent;e.FIELD_UNDERLINE=b;e.MD_FONT_SIZE=16;e.MD_ITEM_HEIGHT=48;e.MD_ITEM_MARGIN_PADDING=16;var f=c.ColorPalette.lightGrey;e.PLACEHOLDER_COLOR=f;var h={sheetAreaCover:{backgroundColor:c.ColorPalette.transparent,flex:1},scrollView:{paddingHorizontal:16},sheetContainer:{alignItems:'stretch',flex:1,flexDirection:'column',justifyContent:'flex-end'},sheetItemContainer:{flex:-1}};e.bottomSheetStyles=h;var u={boldDialogText:{fontWeight:'bold'},buttonFarLeft:{borderBottomLeftRadius:5},buttonFarRight:{borderBottomRightRadius:5},buttonWrapper:{alignItems:'stretch',borderRadius:5,flexDirection:'row'},closeWrapper:{alignSelf:'flex-end',padding:c.BoxModel.padding},mainWrapper:{alignSelf:'stretch',padding:2*c.BoxModel.padding,paddingBottom:3*c.BoxModel.padding},overlay:(0,t.default)({},l.StyleSheet.absoluteFillObject,{alignItems:'center',backgroundColor:'rgba(127, 127, 127, 0.6)',flexDirection:'row',justifyContent:'center',padding:30}),overlayTouchable:(0,t.default)({},l.StyleSheet.absoluteFillObject)};e.brandedDialog=u;var C={color:(0,n.schemeColor)('text'),fontSize:16,textAlign:'center'},p={bottomField:{marginBottom:0},fieldWrapper:(0,t.default)({},u.mainWrapper,{paddingBottom:2*c.BoxModel.padding}),formMessage:{alignSelf:'flex-start',fontStyle:'italic',margin:c.BoxModel.margin}};e.inputDialog=p,n.ColorSchemeRegistry.register('BottomSheet',{buttons:{iconStyle:{color:(0,n.schemeColor)('icon'),fontSize:24},labelStyle:{color:(0,n.schemeColor)('text'),flexShrink:1,fontSize:16,marginLeft:32,opacity:.9},style:{alignItems:'center',flexDirection:'row',height:48},underlayColor:c.ColorPalette.overflowMenuItemUnderlay},expandIcon:{color:(0,n.schemeColor)('icon'),fontSize:48,opacity:.8},sheet:{backgroundColor:(0,n.schemeColor)('background')}}),n.ColorSchemeRegistry.register('Dialog',{button:{backgroundColor:(0,n.schemeColor)('buttonBackground'),flex:1,padding:1.5*c.BoxModel.padding},buttonSeparator:{borderRightColor:(0,n.schemeColor)('border'),borderRightWidth:1},buttonLabel:{color:(0,n.schemeColor)('buttonLabel'),fontSize:16,textAlign:'center'},closeStyle:{color:(0,n.schemeColor)('icon'),fontSize:16},dialog:{alignItems:'stretch',backgroundColor:(0,n.schemeColor)('background'),borderColor:(0,n.schemeColor)('border'),borderRadius:5,borderWidth:1,flex:1,flexDirection:'column',maxWidth:s.PREFERRED_DIALOG_SIZE},field:(0,t.default)({},C,{borderBottomWidth:1,borderColor:(0,n.schemeColor)('border'),margin:c.BoxModel.margin,textAlign:'left'}),fieldLabel:(0,t.default)({},C,{margin:c.BoxModel.margin,textAlign:'left'}),text:(0,t.default)({},C),topBorderContainer:{borderTopColor:(0,n.schemeColor)('border'),borderTopWidth:1}})},1067,[3,53,15,438,522,1068]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.PREFERRED_DIALOG_SIZE=void 0;e.PREFERRED_DIALOG_SIZE=300},1068,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),s=t(r(d[5])),c=t(r(d[6])),f=r(d[7]),p=r(d[8]),y=r(d[9]),h=(r(d[10]),r(d[11])),b=t(r(d[12])),_=r(d[13]),v=(function(t){function p(){return(0,n.default)(this,p),(0,o.default)(this,(0,u.default)(p).apply(this,arguments))}return(0,s.default)(p,t),(0,l.default)(p,[{key:"_getSubmitButtonKey",value:function(){return this.props.okKey||'dialog.confirmYes'}},{key:"_renderAdditionalButtons",value:function(){var t=this.props,n=t._dialogStyles,l=t.cancelKey,o=t.t;return c.default.createElement(f.TouchableOpacity,{onPress:this._onCancel,style:[n.button,_.brandedDialog.buttonFarLeft,n.buttonSeparator]},c.default.createElement(f.Text,{style:n.buttonLabel},o(l||'dialog.confirmNo')))}},{key:"_renderSubmittable",value:function(){if(this.props.children)return this.props.children;var t=this.props,n=t._dialogStyles,l=t.contentKey,o=t.t,u='string'==typeof l?o(l):this._renderHTML(o(l.key,l.params));return c.default.createElement(f.Text,{style:n.text},u)}}]),p})(b.default),S=(0,p.translate)((0,y.connect)(h._abstractMapStateToProps)(v));e.default=S},1069,[3,4,5,6,9,10,59,15,726,443,522,534,1070,1067]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),b=r(d[7]),c=(r(d[8]),t(r(d[9]))),p=r(d[10]),y=(function(t){function c(){return(0,n.default)(this,c),(0,u.default)(this,(0,o.default)(c).apply(this,arguments))}return(0,s.default)(c,t),(0,l.default)(c,[{key:"_getSubmitButtonKey",value:function(){return this.props.okKey||'dialog.Ok'}},{key:"_renderAdditionalButtons",value:function(){return null}},{key:"_renderContent",value:function(){var t=this.props,n=t._dialogStyles,l=t.t,u=this._renderAdditionalButtons();return f.default.createElement(b.View,null,f.default.createElement(b.View,{style:p.brandedDialog.mainWrapper},this._renderSubmittable()),f.default.createElement(b.View,{style:p.brandedDialog.buttonWrapper},u,f.default.createElement(b.TouchableOpacity,{disabled:this.props.okDisabled,onPress:this._onSubmit,style:[n.button,u?null:p.brandedDialog.buttonFarLeft,p.brandedDialog.buttonFarRight]},f.default.createElement(b.Text,{style:n.buttonLabel},l(this._getSubmitButtonKey())))))}}]),c})(c.default);e.default=y},1070,[3,4,5,6,9,10,59,15,522,1071,1067]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),f=t(r(d[7])),b=r(d[8]),h=r(d[9]),y=(r(d[10]),t(r(d[11]))),v=r(d[12]),p=(function(t){function y(t){var n;return(0,l.default)(this,y),(n=(0,s.default)(this,(0,u.default)(y).call(this,t)))._onSubmit=n._onSubmit.bind((0,c.default)((0,c.default)(n))),n}return(0,o.default)(y,t),(0,n.default)(y,[{key:"render",value:function(){var t=this.props,l=t._dialogStyles,n=t.style;return f.default.createElement(b.TouchableWithoutFeedback,null,f.default.createElement(b.KeyboardAvoidingView,{behavior:"height",style:[v.brandedDialog.overlay]},f.default.createElement(b.View,{pointerEvents:"box-none",style:[l.dialog,n]},f.default.createElement(b.TouchableOpacity,{onPress:this._onCancel,style:v.brandedDialog.closeWrapper},f.default.createElement(h.Icon,{src:h.IconClose,style:l.closeStyle})),this._renderContent())))}},{key:"_renderHTML",value:function(t){if('string'==typeof t){t=t.replace(/\s{2,}/gi,' ');for(var l,n,s=/<\s*b\s*>/gi,u=/<\s*\/\s*b\s*>/gi,o=0,c=[];(l=s.exec(t))&&(u.lastIndex=s.lastIndex,n=u.exec(t));)c.push(t.substring(o,l.index)),c.push(f.default.createElement(b.Text,{style:v.brandedDialog.boldDialogText},t.substring(s.lastIndex,n.index))),s.lastIndex=o=u.lastIndex;return o<t.length&&c.push(t.substring(o)),c}return t}}]),y})(y.default);e.default=p},1071,[3,4,5,6,9,10,8,59,15,548,522,1072,1067]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),f=t(r(d[5])),s=t(r(d[6])),c=r(d[7]),h=r(d[8]),_=(function(t){function c(t){var u;return(0,n.default)(this,c),(u=(0,o.default)(this,(0,l.default)(c).call(this,t)))._onCancel=u._onCancel.bind((0,s.default)((0,s.default)(u))),u._onSubmit=u._onSubmit.bind((0,s.default)((0,s.default)(u))),u._onSubmitFulfilled=u._onSubmitFulfilled.bind((0,s.default)((0,s.default)(u))),u._onSubmitRejected=u._onSubmitRejected.bind((0,s.default)((0,s.default)(u))),u}return(0,f.default)(c,t),(0,u.default)(c,[{key:"componentDidMount",value:function(){this._mounted=!0}},{key:"componentWillUnmount",value:function(){this._mounted=!1}},{key:"_hide",value:function(){return this.props.dispatch((0,h.hideDialog)())}},{key:"_onCancel",value:function(){var t=this.props,n=t.cancelDisabled,u=void 0!==n&&n,o=t.onCancel;u||o&&!o()||this._hide()}},{key:"_onSubmit",value:function(t){var n=this.props,u=n.okDisabled,o=void 0!==u&&u,l=n.onSubmit;if(!o){this.setState({submitting:!0});var f,s=!l||l(t);if(s)switch(typeof s){case'function':case'object':f=s.then}'function'==typeof f&&2===f.length?f.call(s,this._onSubmitFulfilled,this._onSubmitRejected):s?this._onSubmitFulfilled():this._onSubmitRejected()}}},{key:"_onSubmitFulfilled",value:function(){this._mounted&&this.setState({submitting:!1}),this._hide()}},{key:"_onSubmitRejected",value:function(){this._mounted&&this.setState({submitting:!1})}}]),c})(c.Component);e.default=_},1072,[3,4,5,6,9,10,8,59,532]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),c=r(d[6]),s=r(d[7]),p=(function(t){function c(){return(0,n.default)(this,c),(0,f.default)(this,(0,l.default)(c).apply(this,arguments))}return(0,o.default)(c,t),(0,u.default)(c,[{key:"_renderContent",value:function(){return this.props.children}}]),c})(t(r(d[8])).default),_=(0,c.connect)(s._abstractMapStateToProps)(p);e.default=_},1073,[3,4,5,6,9,10,443,534,1071]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),f=n(r(d[3])),l=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),s=r(d[7]),p=t(r(d[8])),v=(function(t){function n(){return(0,u.default)(this,n),(0,l.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,f.default)(n,[{key:"render",value:function(){return this._renderDialogContent()}}]),n})(p.default),_=(0,s.connect)(p.abstractMapStateToProps)(v);e.default=_},1074,[2,3,4,5,6,9,10,443,1075]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.abstractMapStateToProps=function(t){var n=t['features/base/dialog'],o=t['features/base/responsive-ui'].reducedUI;return{_component:n.component,_componentProps:n.componentProps,_rawDialog:n.rawDialog,_reducedUI:o}},e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),p=n(r(d[4])),l=n(r(d[5])),s=n(r(d[6])),c=t(r(d[7])),f=(function(t){function n(){return(0,o.default)(this,n),(0,p.default)(this,(0,l.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,u.default)(n,[{key:"_renderDialogContent",value:function(){var t=this.props,n=t._component,o=t._reducedUI;return n&&!o?c.default.createElement(n,this.props._componentProps):null}}]),n})(c.Component);e.default=f},1075,[2,3,4,5,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),s=t(r(d[6])),c=r(d[7]),p=r(d[8]),y=r(d[9]),_=r(d[10]),v=(function(t){function p(){return(0,n.default)(this,p),(0,l.default)(this,(0,f.default)(p).apply(this,arguments))}return(0,o.default)(p,t),(0,u.default)(p,[{key:"_renderSubmittable",value:function(){var t=this.props,n=t._dialogStyles,u=t.contentKey,l=t.t,f='string'==typeof u?l(u):this._renderHTML(l(u.key,u.params));return s.default.createElement(c.Text,{style:n.text},f)}}]),p})(t(r(d[11])).default),h=(0,p.translate)((0,y.connect)(_._abstractMapStateToProps)(v));e.default=h},1076,[3,4,5,6,9,10,59,15,726,443,534,1070]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),s=t(r(d[5])),f=t(r(d[6])),p=t(r(d[7])),b=t(r(d[8])),c=r(d[9]),h=r(d[10]),_=r(d[11]),y=(r(d[12]),r(d[13])),v=t(r(d[14])),V=r(d[15]),x=(function(t){function h(t){var l;return(0,n.default)(this,h),(l=(0,o.default)(this,(0,s.default)(h).call(this,t))).state={fieldValue:t.initialValue},l._onChangeText=l._onChangeText.bind((0,p.default)((0,p.default)(l))),l._onSubmitValue=l._onSubmitValue.bind((0,p.default)((0,p.default)(l))),l}return(0,f.default)(h,t),(0,u.default)(h,[{key:"_renderContent",value:function(){var t=this.props,n=t._dialogStyles,u=t.messageKey,o=t.okDisabled,s=t.t;return b.default.createElement(c.View,null,b.default.createElement(c.View,{style:[V.brandedDialog.mainWrapper,V.inputDialog.fieldWrapper]},b.default.createElement(c.Text,{style:n.fieldLabel},s(this.props.contentKey)),b.default.createElement(c.TextInput,(0,l.default)({onChangeText:this._onChangeText,style:n.field,underlineColorAndroid:V.FIELD_UNDERLINE,value:this.state.fieldValue},this.props.textInputProps)),u&&b.default.createElement(c.Text,{style:[V.inputDialog.formMessage,n.text]},s(u))),b.default.createElement(c.View,{style:V.brandedDialog.buttonWrapper},b.default.createElement(c.TouchableOpacity,{disabled:o,onPress:this._onSubmitValue,style:[n.button,V.brandedDialog.buttonFarLeft,V.brandedDialog.buttonFarRight]},b.default.createElement(c.Text,{style:n.buttonLabel},s('dialog.Ok')))))}},{key:"_onChangeText",value:function(t){this.props.validateInput&&!this.props.validateInput(t)||this.setState({fieldValue:t})}},{key:"_onSubmitValue",value:function(){return this._onSubmit(this.state.fieldValue)}}]),h})(v.default),E=(0,h.translate)((0,_.connect)(y._abstractMapStateToProps)(x));e.default=E},1077,[3,24,4,5,6,9,10,8,59,15,726,443,522,534,1071,1067]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),c=r(d[6]),s=r(d[7]),p=r(d[8]),_=(function(t){function c(){return(0,u.default)(this,c),(0,l.default)(this,(0,f.default)(c).apply(this,arguments))}return(0,o.default)(c,t),(0,n.default)(c,[{key:"_renderSubmittable",value:function(){return this.props.children}}]),c})(t(r(d[9])).default),h=(0,c.translate)((0,s.connect)(p._abstractMapStateToProps)(_));e.default=h},1078,[3,4,5,6,9,10,726,443,534,1070]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),s=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),y=n(r(d[9])),v=(function(t){function n(){return(0,l.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props,n=t.children,l=t.style,u='string'==typeof n?c.default.createElement(p.Text,{style:l},n):n;return c.default.createElement(p.Container,{style:y.default.dialogContainer},u)}}]),n})(c.Component);e.default=v},1079,[2,3,4,5,6,9,10,59,539,1080]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),t=(0,o.createStyleSheet)({dialogContainer:{paddingHorizontal:o.BoxModel.padding,paddingVertical:1.5*o.BoxModel.padding}});e.default=t},1080,[522]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},1081,[1082,1083,1084,999]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.clientResized=function(n,u){return{type:t.CLIENT_RESIZED,clientHeight:u,clientWidth:n}},e.setAspectRatio=function(u,c){return function(s,o){if(u!==c){var _=u<c?n.ASPECT_RATIO_NARROW:n.ASPECT_RATIO_WIDE;if(_!==o()['features/base/responsive-ui'].aspectRatio)return s({type:t.SET_ASPECT_RATIO,aspectRatio:_})}}},e.setReducedUI=function(n,c){return function(s,o){var _=Math.min(n,c)<u;if(_!==o()['features/base/responsive-ui'].reducedUI)return s({type:t.SET_REDUCED_UI,reducedUI:_})}};var t=r(d[0]),n=r(d[1]),u=300},1082,[1083,999]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_REDUCED_UI=e.SET_ASPECT_RATIO=e.CLIENT_RESIZED=void 0;e.CLIENT_RESIZED='CLIENT_RESIZED';e.SET_ASPECT_RATIO='SET_ASPECT_RATIO';e.SET_REDUCED_UI='SET_REDUCED_UI'},1083,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DimensionsDetector",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1084,[3,1085]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),f=n(r(d[5])),s=n(r(d[6])),h=n(r(d[7])),y=t(r(d[8])),c=r(d[9]),v=(function(t){function n(t){var o;return(0,u.default)(this,n),(o=(0,l.default)(this,(0,f.default)(n).call(this,t)))._onLayout=o._onLayout.bind((0,h.default)((0,h.default)(o))),o}return(0,s.default)(n,t),(0,o.default)(n,[{key:"_onLayout",value:function(t){var n=t.nativeEvent.layout,u=n.height,o=n.width,l=this.props.onDimensionsChanged;l&&l(o,u)}},{key:"render",value:function(){return y.default.createElement(c.View,{onLayout:this._onLayout,style:c.StyleSheet.absoluteFillObject},this.props.children)}}]),n})(y.PureComponent);e.default=v},1085,[2,3,4,5,6,9,10,8,59,15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/app');e.default=t},1086,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractApp=void 0;var u=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),p=n(r(d[5])),s=n(r(d[6])),f=n(r(d[7])),c=t(r(d[8])),h=r(d[9]),v=r(d[10]),_=r(d[11]),U=r(d[12]),L=r(d[13]),R=(function(t){function n(){return(0,u.default)(this,n),(0,l.default)(this,(0,p.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,o.default)(n,[{key:"componentDidMount",value:function(){var t=this;(0,s.default)((0,p.default)(n.prototype),"componentDidMount",this).call(this),this._init.then(function(){t._openURL((0,v.toURLString)(t.props.url)||t._getDefaultURL())})}},{key:"componentDidUpdate",value:function(t){var n=this,u=(0,v.toURLString)(t.url),o=(0,v.toURLString)(this.props.url),l=t.timestamp,p=this.props.timestamp;this._init.then(function(){u===o&&l===p||n._openURL(o||n._getDefaultURL())})}},{key:"_createExtraElement",value:function(){return c.default.createElement(c.Fragment,null,c.default.createElement(_.OverlayContainer,null))}},{key:"_getDefaultURL",value:function(){return(0,L.getDefaultURL)(this.state.store)}},{key:"_openURL",value:function(t){this.state.store.dispatch((0,U.appNavigate)((0,v.toURLString)(t)))}}]),n})(h.BaseApp);e.AbstractApp=R},1087,[2,3,4,5,6,9,46,10,59,956,506,1088,1100,909]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1088,[1089,1091,1093]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.mediaPermissionPromptVisibilityChanged=function(n,o){return{type:t.MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED,browser:o,isVisible:n}},e.setFatalError=function(n){return{type:t.SET_FATAL_ERROR,fatalError:n}};var t=r(d[0])},1089,[1090]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_FATAL_ERROR=e.MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED=void 0;e.MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED='MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED';e.SET_FATAL_ERROR='SET_FATAL_ERROR'},1090,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={OverlayContainer:!0};Object.defineProperty(e,"OverlayContainer",{enumerable:!0,get:function(){return o.default}});var o=t(r(d[1])),u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))})},1091,[3,1092,1131]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),v=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),s=r(d[9]),y=(function(t){function n(){return(0,u.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,v.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){var t=this.props.overlay;return t?c.default.createElement(t,{}):null}}]),n})(c.Component);var h=(0,p.connect)(function(t){return{overlay:(0,s.getOverlayToRender)(t)}})(y);e.default=h},1092,[2,3,4,5,6,9,10,59,443,1093]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getOverlayToRender=function(n){for(var o=(0,t.getOverlays)(),s=Array.isArray(o),f=0,o=s?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(f>=o.length)break;l=o[f++]}else{if((f=o.next()).done)break;l=f.value}var u=l,y=u.WrappedComponent||u;if(y.needsRender(n))return u}return},e.getMediaPermissionPromptVisibility=function(t){return t['features/overlay'].isMediaPermissionPromptVisible};var t=r(d[0])},1093,[1094]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getOverlays=function(){return[n.LoadConfigOverlay,n.PageReloadOverlay]};var n=r(d[0])},1094,[1095]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"LoadConfigOverlay",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"OverlayFrame",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"PageReloadOverlay",{enumerable:!0,get:function(){return f.default}});var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3]))},1095,[3,1096,1097,1099]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),u=l(r(d[4])),f=l(r(d[5])),c=l(r(d[6])),s=t(r(d[7])),y=r(d[8]),v=r(d[9]),p=r(d[10]),O=r(d[11]),h=r(d[12]),_=(r(d[13]),l(r(d[14]))),C=l(r(d[15])),E=(function(t){function l(){return(0,n.default)(this,l),(0,u.default)(this,(0,f.default)(l).apply(this,arguments))}return(0,c.default)(l,t),(0,o.default)(l,[{key:"render",value:function(){var t=this.props._styles;return s.default.createElement(_.default,null,s.default.createElement(y.View,{style:[C.default.loadingOverlayWrapper,t.loadingOverlayWrapper]},s.default.createElement(y.SafeAreaView,null,s.default.createElement(O.LoadingIndicator,{color:t.indicatorColor,size:"large",style:C.default.connectIndicator}),s.default.createElement(y.Text,{style:[C.default.loadingOverlayText,t.loadingOverlayText]},this.props.t('connectingOverlay.joiningRoom')))))}}],[{key:"needsRender",value:function(t){return Boolean(t['features/overlay'].loadConfigOverlayVisible)}}]),l})(s.Component);var x=(0,p.translate)((0,h.connect)(function(t){return{_styles:v.ColorSchemeRegistry.get(t,'LoadConfigOverlay')}})(E));e.default=x},1096,[2,3,4,5,6,9,10,59,15,438,726,539,443,522,1097,1098]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),s=t(r(d[7])),p=r(d[8]),h=n(r(d[9])),v=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return s.default.createElement(p.View,{style:h.default.container},s.default.createElement(p.SafeAreaView,{style:h.default.safeContainer},this.props.children))}}]),n})(s.Component);e.default=v},1097,[2,3,4,5,6,9,10,59,15,1098]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=o(r(d[1])),t=r(d[2]),n=r(d[3]),c=r(d[4]),u={connectIndicator:{margin:c.BoxModel.margin},container:(0,l.default)({},t.StyleSheet.absoluteFillObject,{backgroundColor:c.ColorPalette.black}),loadingOverlayText:{color:c.ColorPalette.white},loadingOverlayWrapper:(0,l.default)({},t.StyleSheet.absoluteFillObject,{alignItems:'center',flex:1,flexDirection:'column',justifyContent:'center'}),safeContainer:{flex:1}};e.default=u,n.ColorSchemeRegistry.register('LoadConfigOverlay',{indicatorColor:(0,n.schemeColor)('text'),loadingOverlayText:{color:(0,n.schemeColor)('text')},loadingOverlayWrapper:{backgroundColor:(0,n.schemeColor)('background')}})},1098,[3,53,15,438,522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),u=l(r(d[4])),s=l(r(d[5])),c=l(r(d[6])),f=l(r(d[7])),v=l(r(d[8])),h=l(r(d[9])),p=r(d[10]),_=r(d[11]),y=r(d[12]),C=r(d[13]),N=r(d[14]),w=r(d[15]),b=(r(d[16]),r(d[17])),R=t(r(d[18])),S=l(r(d[19])),k=(function(t){function l(t){var n;return(0,o.default)(this,l),(n=(0,s.default)(this,(0,c.default)(l).call(this,t)))._onCancel=n._onCancel.bind((0,v.default)((0,v.default)(n))),n._onReloadNow=n._onReloadNow.bind((0,v.default)((0,v.default)(n))),n}return(0,f.default)(l,t),(0,u.default)(l,[{key:"_onCancel",value:function(){clearInterval(this._interval),this.props.dispatch((0,b.setFatalError)(void 0)),this.props.dispatch((0,_.appNavigate)(void 0))}},{key:"_onReloadNow",value:function(){clearInterval(this._interval),this.props.dispatch((0,_.reloadNow)())}},{key:"render",value:function(){var t=this.props,l=t._dialogStyles,n=t.t,o=this.state,u=o.message,s=o.timeLeft,c=o.title;return h.default.createElement(S.default,null,h.default.createElement(C.ConfirmDialog,{cancelKey:"dialog.Cancel",okKey:"dialog.rejoinNow",onCancel:this._onCancel,onSubmit:this._onReloadNow},h.default.createElement(p.Text,{style:l.text},n(c)+" "+n(u,{seconds:s}))))}}]),l})(R.default);var E=(0,N.translate)((0,w.connect)(function(t){return(0,n.default)({},(0,R.abstractMapStateToProps)(t),{_dialogStyles:y.ColorSchemeRegistry.get(t,'Dialog')})})(k));e.default=E},1099,[2,3,53,4,5,6,9,10,8,59,15,1100,438,531,726,443,522,1089,1125,1097]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.appNavigate=S,e.redirectWithStoredParams=U,e.redirectToStaticPage=_,e.reloadNow=function(){return function(t,o){t((0,R.setFatalError)(void 0));var n=o(),s=n['features/base/connection'].locationURL,c=C(s,n);k.default.info("Reloading the conference using URL: "+s),'ReactNative'===navigator.product?t(S((0,v.toURLString)(c))):t(P())}},e.reloadWithStoredParams=P,e.maybeRedirectToWelcomePage=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(o,s){var c=s()['features/base/config'].enableClosePage;if(c){(0,b.isVpaasMeeting)(s())&&_('/');var u,f=s()['features/base/jwt'],l=f.isGuest,h=f.jwt;window.sessionStorage.setItem('guest',l),window.sessionStorage.setItem('jwt',h);var p='close.html';return interfaceConfig.SHOW_PROMOTIONAL_CLOSE_PAGE?(Number(n.API_ID)===n.API_ID&&(u="#jitsi_meet_external_api_id="+n.API_ID),p='close3.html'):t.feedbackSubmitted||(p='close2.html'),void o(_("static/"+p,u))}t.showThankYou&&o((0,w.showNotification)({titleArguments:{appName:(0,L.getName)()},titleKey:'dialog.thankYou'})),s()['features/base/config'].enableWelcomePage&&setTimeout(function(){o(U('/'))},t.showThankYou?3e3:500)}};var o=t(r(d[1])),n=r(d[2]),s=r(d[3]),c=r(d[4]),u=r(d[5]),f=r(d[6]),l=r(d[7]),h=r(d[8]),p=r(d[9]),v=r(d[10]),b=r(d[11]),w=r(d[12]),R=r(d[13]),L=r(d[14]),k=t(r(d[15]));function S(t){return function(n,l){var h,b,R,S,U,_,C,P,I,N,T;return o.default.async(function(x){for(;;)switch(x.prev=x.next){case 0:if((h=(0,v.parseURIString)(t))&&h.host||(b=(0,v.parseURIString)((0,L.getDefaultURL)(l)),h?(h.host=b.host,h.hostname=b.hostname,h.pathname=b.pathname+h.pathname.substr(1),h.port=b.port,h.protocol=b.protocol):h=b),h.protocol||(h.protocol='https:'),S=(R=h).contextRoot,U=R.host,_=R.room,C=new URL(h.toString()),'ReactNative'===navigator.product&&n((0,u.disconnect)()),n((0,w.clearNotifications)()),n((0,c.configWillLoad)(C,_)),'http:'!==(P=h.protocol.toLowerCase())&&'https:'!==P&&(P='https:'),N=(I=P+"//"+U+(S||'/'))+"config.js",_&&(N+="?room="+(0,v.getBackendSafeRoomName)(_)),_||(T=(0,c.restoreConfig)(I)),T){x.next=31;break}return x.prev=15,x.next=18,o.default.awrap((0,f.loadConfig)(N));case 18:T=x.sent,n((0,c.storeConfig)(I,T)),x.next=31;break;case 22:if(x.prev=22,x.t0=x.catch(15),T=(0,c.restoreConfig)(I)){x.next=31;break}if(!_){x.next=29;break}return n((0,c.loadConfigError)(x.t0,C)),x.abrupt("return");case 29:k.default.warn('Failed to load config but there is no room, applying a fake one'),T=(0,c.createFakeConfig)(I);case 31:if(l()['features/base/config'].locationURL===C){x.next=34;break}return n((0,c.loadConfigError)(new Error('Config no longer needed!'),C)),x.abrupt("return");case 34:n((0,u.setLocationURL)(C)),n((0,c.setConfig)(T)),n((0,s.setRoom)(_)),_&&'ReactNative'===navigator.product&&(n((0,p.createDesiredLocalTracks)()),n((0,u.connect)()));case 38:case"end":return x.stop()}},null,this,[[15,22]])}}function U(t){return function(o,n){var s=n()['features/base/connection'].locationURL,c=new URL(s.href);c.pathname=t,window.location.assign(c.toString())}}function _(t,o){return function(){var n=window.location,s=t;s.startsWith('/')||(s.startsWith('./')&&(s=s.substring(2)),s=(0,v.getLocationContextRoot)(n)+s),o&&(n.hash=o),n.pathname=s}}function C(t,o){var n=(0,h.toState)(o)['features/base/tracks'],s=(0,p.isLocalVideoTrackMuted)(n),c=(0,p.isLocalTrackMuted)(n,l.MEDIA_TYPE.AUDIO);return(0,v.addHashParamsToURL)(new URL(t),{'config.startWithAudioMuted':c,'config.startWithVideoMuted':s})}function P(){return function(t,o){var n=o(),s=C(n['features/base/connection'].locationURL,n),c=window.location,u=c.search;c.replace(s.toString()),s.search===u&&c.reload()}}},1100,[3,270,908,1101,917,1112,879,887,443,903,506,1122,706,1088,909,1086]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},1101,[1102,1121,1115,1114]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.authStatusChanged=function(n,t){return{type:N.AUTH_STATUS_CHANGED,authEnabled:n,authLogin:t}},e.conferenceFailed=T,e.conferenceJoined=D,e.conferenceLeft=R,e.conferenceSubjectChanged=y,e.conferenceTimestampChanged=O,e.conferenceWillJoin=I,e.conferenceWillLeave=function(n){return{type:N.CONFERENCE_WILL_LEAVE,conference:n}},e.createConference=function(){return function(n,o){var u=o(),f=u['features/base/connection'],s=f.connection,p=f.locationURL;if(!s)throw new Error('Cannot create a conference without a connection!');var N=u['features/base/conference'],v=N.password,T=N.room;if(!T)throw new Error('Cannot join a conference without a room name!');var D=u['features/base/config'],R=u['features/base/jwt'].tenant,y=(0,C.getLocalParticipant)(u),O=y.email,I=y.name,L=s.initJitsiConference((0,_.getBackendSafeRoomName)(T),(0,t.default)({},D,{applicationName:(0,c.getName)(),getWiFiStatsMethod:(0,_.getJitsiMeetGlobalNS)().getWiFiStats,confID:""+p.host+(0,_.getBackendSafePath)(p.pathname),siteID:R,statisticsDisplayName:D.enableDisplayNameInStats?I:void 0,statisticsId:D.enableEmailInStats?O:void 0}));s[E.JITSI_CONNECTION_CONFERENCE_KEY]=L,L[l.JITSI_CONFERENCE_URL_KEY]=p,n(h(L)),S(L,n),(0,A.sendLocalParticipant)(u,L),L.join(v)}},e.checkIfCanJoin=function(){return function(n,t){var o=t()['features/base/conference'],c=o.authRequired,u=o.password;c&&n(h(c)),c&&c.join(u)}},e.dataChannelOpened=function(){return{type:N.DATA_CHANNEL_OPENED}},e.kickedOut=L,e.lockStateChanged=J,e.onStartMutedPolicyChanged=M,e.p2pStatusChanged=function(n){return{type:N.P2P_STATUS_CHANGED,p2p:n}},e.sendTones=function(n,t,o){return{type:N.SEND_TONES,tones:n,duration:t,pause:o}},e.setDesktopSharingEnabled=function(n){return{type:N.SET_DESKTOP_SHARING_ENABLED,desktopSharingEnabled:n}},e.setFollowMe=function(n){return{type:N.SET_FOLLOW_ME,enabled:n}},e.setPassword=function(n,t,o){return function(c,u){switch(t){case n.join:var E=u()['features/base/conference'];c({type:N.SET_PASSWORD,conference:n,method:t,password:o}),(E=u()['features/base/conference']).password!==o||E.conference||t.call(n,o);break;case n.lock:var f=u()['features/base/conference'];return f.conference===n?t.call(n,o).then(function(){return c({type:N.SET_PASSWORD,conference:n,method:t,password:o})}).catch(function(n){return c({type:N.SET_PASSWORD_FAILED,error:n})}):Promise.reject()}}},e.setRoom=function(n){return{type:N.SET_ROOM,room:n}},e.setStartMutedPolicy=function(n,t){return function(o,c){var u=(0,A.getCurrentConference)(c());return u&&u.setStartMutedPolicy({audio:n,video:t}),o(M(n,t))}},e.setSubject=function(n){return function(t,o){var c=o()['features/base/conference'].conference;c?c.setSubject(n||''):t({type:N.SET_PENDING_SUBJECT_CHANGE,subject:n})}};var t=n(r(d[1])),o=r(d[2]),c=r(d[3]),u=r(d[4]),E=r(d[5]),f=r(d[6]),s=r(d[7]),C=r(d[8]),p=r(d[9]),_=r(d[10]),N=r(d[11]),l=r(d[12]),A=r(d[13]),v=n(r(d[14]));function S(n,t){n.on(f.JitsiConferenceEvents.CONFERENCE_ERROR,function(n){return v.default.error('Conference error.',n)}),n.on(f.JitsiConferenceEvents.CONFERENCE_FAILED,function(){for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return t(T.apply(void 0,[n].concat(c)))}),n.on(f.JitsiConferenceEvents.CONFERENCE_JOINED,function(){for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return t(D.apply(void 0,[n].concat(c)))}),n.on(f.JitsiConferenceEvents.CONFERENCE_LEFT,function(){t(O(0));for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];t(R.apply(void 0,[n].concat(c)))}),n.on(f.JitsiConferenceEvents.SUBJECT_CHANGED,function(){return t(y.apply(void 0,arguments))}),n.on(f.JitsiConferenceEvents.CONFERENCE_CREATED_TIMESTAMP,function(){return t(O.apply(void 0,arguments))}),n.on(f.JitsiConferenceEvents.KICKED,function(){for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return t(L.apply(void 0,[n].concat(c)))}),n.on(f.JitsiConferenceEvents.PARTICIPANT_KICKED,function(n,o){return t((0,C.participantKicked)(n,o))}),n.on(f.JitsiConferenceEven
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1103,[1104,1105,1106]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.endpointMessageReceived=function(n,s){return{type:t.ENDPOINT_MESSAGE_RECEIVED,participant:n,json:s}},e.removeTranscriptMessage=function(n){return{type:t.REMOVE_TRANSCRIPT_MESSAGE,transcriptMessageID:n}},e.updateTranscriptMessage=function(n,s){return{type:t.UPDATE_TRANSCRIPT_MESSAGE,transcriptMessageID:n,newTranscriptMessage:s}},e.toggleRequestingSubtitles=function(){return{type:t.TOGGLE_REQUESTING_SUBTITLES}};var t=r(d[0])},1104,[1105]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_REQUESTING_SUBTITLES=e.UPDATE_TRANSCRIPT_MESSAGE=e.REMOVE_TRANSCRIPT_MESSAGE=e.ENDPOINT_MESSAGE_RECEIVED=void 0;e.ENDPOINT_MESSAGE_RECEIVED='ENDPOINT_MESSAGE_RECEIVED';e.REMOVE_TRANSCRIPT_MESSAGE='REMOVE_TRANSCRIPT_MESSAGE';e.UPDATE_TRANSCRIPT_MESSAGE='UPDATE_TRANSCRIPT_MESSAGE';e.TOGGLE_REQUESTING_SUBTITLES='TOGGLE_REQUESTING_SUBTITLES'},1105,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Captions",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"ClosedCaptionButton",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},1106,[3,1107,1110]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),c=r(d[7]),p=r(d[8]),y=r(d[9]),_=t(r(d[10])),b=(function(t){function p(){return(0,n.default)(this,p),(0,l.default)(this,(0,s.default)(p).apply(this,arguments))}return(0,o.default)(p,t),(0,u.default)(p,[{key:"_renderParagraph",value:function(t,n){return f.default.createElement(c.Text,{key:t,onPress:this.props.onPress,style:_.default.subtitle},n)}},{key:"_renderSubtitlesContainer",value:function(t){return f.default.createElement(c.Container,{style:_.default.subtitlesContainer},t)}}]),p})(y.AbstractCaptions),v=(0,p.connect)(y._abstractMapStateToProps)(b);e.default=v},1107,[3,4,5,6,9,10,59,539,443,1108,1109]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._abstractMapStateToProps=function(t){var n=t['features/subtitles']._requestingSubtitles,s=p(t);return{_requestingSubtitles:n,_transcripts:0===s.size?void 0:s}},e.AbstractCaptions=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),b=(function(t){function b(){return(0,s.default)(this,b),(0,l.default)(this,(0,o.default)(b).apply(this,arguments))}return(0,f.default)(b,t),(0,u.default)(b,[{key:"render",value:function(){var t=this.props,s=t._requestingSubtitles,u=t._transcripts;if(!s||!u||!u.size)return null;var l=[],o=u,f=Array.isArray(o),b=0;for(o=f?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var p;if(f){if(b>=o.length)break;p=o[b++]}else{if((b=o.next()).done)break;p=b.value}var v=p,c=(0,n.default)(v,2),y=c[0],_=c[1];l.push(this._renderParagraph(y,_))}return this._renderSubtitlesContainer(l)}}]),b})(r(d[7]).Component);function p(t){var s=t['features/subtitles']._transcriptMessages,u=new Map,l=s,o=Array.isArray(l),f=0;for(l=o?l:l["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(o){if(f>=l.length)break;b=l[f++]}else{if((f=l.next()).done)break;b=f.value}var p=b,v=(0,n.default)(p,2),c=v[0],y=v[1];if(y){var _=y.participantName+": ";if(y.final)_+=y.final;else _+=(y.stable||'')+(y.unstable||'');u.set(c,_)}}return u}e.AbstractCaptions=b},1108,[3,25,4,5,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),t=(0,o.createStyleSheet)({subtitle:{backgroundColor:o.ColorPalette.black,borderRadius:o.BoxModel.margin/4,color:o.ColorPalette.white,marginBottom:o.BoxModel.margin,padding:o.BoxModel.padding/2},subtitlesContainer:{alignItems:'center',flexDirection:'column',flexGrow:0,justifyContent:'flex-end',margin:o.BoxModel.margin}});e.default=t},1109,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.mapStateToProps=C,e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),s=t(r(d[4])),c=t(r(d[5])),u=r(d[6]),b=r(d[7]),f=r(d[8]),v=r(d[9]),p=r(d[10]),_=(function(t){function n(){var t,c;(0,l.default)(this,n);for(var u=arguments.length,b=new Array(u),v=0;v<u;v++)b[v]=arguments[v];return(c=(0,o.default)(this,(t=(0,s.default)(n)).call.apply(t,[this].concat(b)))).accessibilityLabel='toolbar.accessibilityLabel.cc',c.icon=f.IconClosedCaption,c.label='transcribing.start',c.toggledLabel='transcribing.stop',c}return(0,c.default)(n,t),n})(p.AbstractClosedCaptionButton);function C(t,l){var o=t['features/base/config'].transcribingEnabled,s=t['features/base/jwt'].isGuest,c=void 0===s||s,b=(0,u.getFeatureFlag)(t,u.CLOSE_CAPTIONS_ENABLED,!0)&&o&&!c,f=l.visible,v=void 0===f?b:f;return(0,n.default)({},(0,p._abstractMapStateToProps)(t,l),{visible:v})}var y=(0,b.translate)((0,v.connect)(C)(_));e.default=y},1110,[3,53,4,6,9,10,951,726,548,443,1111]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._abstractMapStateToProps=function(t,n){var s=t['features/subtitles']._requestingSubtitles,u=t['features/base/config'].transcribingEnabled,o=n.visible,l=void 0===o?Boolean(u&&(0,b.isLocalParticipantModerator)(t)):o;return{_requestingSubtitles:s,visible:l}},e.AbstractClosedCaptionButton=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),l=t(r(d[5])),c=r(d[6]),b=r(d[7]),f=r(d[8]),p=r(d[9]),v=(function(t){function b(){return(0,n.default)(this,b),(0,u.default)(this,(0,o.default)(b).apply(this,arguments))}return(0,l.default)(b,t),(0,s.default)(b,[{key:"_handleClick",value:function(){var t=this.props,n=t._requestingSubtitles,s=t.dispatch;(0,c.sendAnalytics)((0,c.createToolbarEvent)('transcribing.ccButton',{requesting_subtitles:Boolean(n)})),s((0,p.toggleRequestingSubtitles)())}},{key:"_isDisabled",value:function(){return!1}},{key:"_isToggled",value:function(){return this.props._requestingSubtitles}}]),b})(f.AbstractButton);e.AbstractClosedCaptionButton=v},1111,[3,4,5,6,9,10,905,704,970,1104]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},1112,[1113,1117,1118,1120]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.connect=function(n,t){return function(o,c){var s=c(),E=L(s),f=s['features/base/connection'].locationURL,C=s['features/base/jwt'].jwt,T=new N.default.JitsiConnection(E.appId,C,E);function _(){b(),o(v(T))}function D(n,t,c,s){b(),o(l(T,{credentials:c,details:s,name:n,message:t}))}function b(){T.removeEventListener(N.JitsiConnectionEvents.CONNECTION_DISCONNECTED,_),T.removeEventListener(N.JitsiConnectionEvents.CONNECTION_FAILED,D)}T[u.JITSI_CONNECTION_URL_KEY]=f,o(I(T)),T.addEventListener(N.JitsiConnectionEvents.CONNECTION_DISCONNECTED,_),T.addEventListener(N.JitsiConnectionEvents.CONNECTION_ESTABLISHED,function n(){T.removeEventListener(N.JitsiConnectionEvents.CONNECTION_ESTABLISHED,n);o(O(T,Date.now()))}),T.addEventListener(N.JitsiConnectionEvents.CONNECTION_FAILED,D),T.connect({id:n,password:t})}},e.connectionDisconnected=v,e.connectionEstablished=O,e.connectionFailed=l,e.disconnect=function(){return function(n,t){var o,N=t(),E=(0,s.getCurrentConference)(N);E?(n((0,c.conferenceWillLeave)(E)),o=E.leave().catch(function(t){C.default.warn('JitsiConference.leave() rejected with:',t),n((0,c.conferenceLeft)(E))})):o=Promise.resolve();var f=N['features/base/connection'],u=f.connecting,v=f.connection,O=v||u;return O?o=o.then(function(){return O.disconnect()}):C.default.info('No connection found while disconnecting.'),o}},e.setLocationURL=function(n){return{type:f.SET_LOCATION_URL,locationURL:n}};var o=t(r(d[2])),c=r(d[3]),s=r(d[4]),N=n(r(d[5])),E=r(d[6]),f=r(d[7]),u=r(d[8]),C=t(r(d[9]));function v(n){return{type:f.CONNECTION_DISCONNECTED,connection:n}}function O(n,t){return{type:f.CONNECTION_ESTABLISHED,connection:n,timeEstablished:t}}function l(n,t){var o=t.credentials;return o&&!Object.keys(o).length&&(t.credentials=void 0),{type:f.CONNECTION_FAILED,connection:n,error:t}}function I(n){return{type:f.CONNECTION_WILL_CONNECT,connection:n}}function L(n){var t=o.default.cloneDeep(n['features/base/config']),c=t.bosh;if(c){var s=n['features/base/connection'].locationURL;if(c.startsWith('//'))c=""+s.protocol+c;else if(c.startsWith('/')){var N=(0,E.parseURIString)(s.href);c=N.protocol+"//"+N.host+(N.contextRoot||'/')+c.substr(1)}var f=n['features/base/conference'].room;f&&(c+="?room="+(0,E.getBackendSafeRoomName)(f)),t.serviceUrl=t.bosh=c}return t}},1113,[2,3,445,1102,1114,879,506,1117,1118,1119]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._addLocalTracksToConference=function(n,t){for(var o=n.getLocalTracks(),c=[],f=t,s=Array.isArray(f),u=0,f=s?f:f["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(s){if(u>=f.length)break;l=f[u++]}else{if((u=f.next()).done)break;l=u.value}var v=l;-1===o.indexOf(v)&&c.push(n.addTrack(v).catch(function(n){p('Failed to add local track to conference',n)}))}return Promise.all(c)},e.commonUserJoinedHandling=function(n,t,o){var f=n.dispatch,s=o.getId(),u=o.getDisplayName();o.isHidden()?f((0,c.hiddenParticipantJoined)(s,u)):f((0,c.participantJoined)({botType:o.getBotType(),conference:t,id:s,name:u,presence:o.getStatus(),role:o.getRole()}))},e.commonUserLeftHandling=function(n,t,o){var f=n.dispatch,s=o.getId();o.isHidden()?f((0,c.hiddenParticipantLeft)(s)):f((0,c.participantLeft)(s,t))},e.forEachConference=function(n,t){for(var o=(0,f.toState)(n)['features/base/conference'],c=Object.values(o),s=0;s<c.length;s++){var l=c[s];if(l&&'object'==typeof l){var p=l[u.JITSI_CONFERENCE_URL_KEY];if((p||'function'==typeof l.myUserId)&&!t(l,p))return!1}}return!0},e.getConferenceName=function(n){var t=(0,f.toState)(n),o=t['features/base/jwt'].callee,c=t['features/base/config'].callDisplayName,u=t['features/base/conference'],l=u.pendingSubjectChange,p=u.room,b=u.subject;return l||b||c||o&&o.name||v((0,s.safeDecodeURIComponent)(p))},e.getConferenceNameForTitle=function(n){return v((0,s.safeDecodeURIComponent)((0,f.toState)(n)['features/base/conference'].room))},e.getConferenceTimestamp=function(n){return(0,f.toState)(n)['features/base/conference'].conferenceTimestamp},e.getCurrentConference=function(n){var t=(0,f.toState)(n)['features/base/conference'],o=t.conference,c=t.joining,s=t.leaving,u=t.membersOnly,l=t.passwordRequired;if(o)return o===s?void 0:o;return c||l||u},e.getRoomName=function(n){return n['features/base/conference'].room},e._handleParticipantError=function(n){if('Data channels support is disabled!'!==n.message)throw n},e.isRoomValid=function(n){return'string'==typeof n&&''!==n},e._removeLocalTracksFromConference=function(n,t){return Promise.all(t.map(function(t){return n.removeTrack(t).catch(function(n){n.name!==o.JitsiTrackErrors.TRACK_IS_DISPOSED&&p('Failed to remove local track from conference',n)})}))},e.sendLocalParticipant=function(n,t){var o=(0,c.getLocalParticipant)(n),f=o.avatarID,s=o.avatarURL,l=o.email,p=o.features,v=o.name;f&&t.sendCommand(u.AVATAR_ID_COMMAND,{value:f}),s&&t.sendCommand(u.AVATAR_URL_COMMAND,{value:s}),l&&t.sendCommand(u.EMAIL_COMMAND,{value:l}),p&&'true'===p['screen-sharing']&&t.setLocalParticipantProperty('features_screen-sharing',!0);t.setDisplayName(v)};var t=n(r(d[1])),o=r(d[2]),c=r(d[3]),f=r(d[4]),s=r(d[5]),u=r(d[6]),l=n(r(d[7]));function p(n,t){l.default.error(n,t)}function v(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return t.default.words((""+n).replace(/['\u2019]/g,'')).reduce(function(n,o,c){return n+(c?' ':'')+t.default.upperFirst(o)},'')}},1114,[3,445,879,704,443,506,1115,1116]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.JITSI_CONFERENCE_URL_KEY=e.EMAIL_COMMAND=e.AVATAR_URL_COMMAND=e.AVATAR_ID_COMMAND=void 0;e.AVATAR_ID_COMMAND='avatar-id';e.AVATAR_URL_COMMAND='avatar-url';e.EMAIL_COMMAND='email';var A=Symbol('url');e.JITSI_CONFERENCE_URL_KEY=A},1115,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/conference');e.default=t},1116,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_LOCATION_URL=e.CONNECTION_WILL_CONNECT=e.CONNECTION_FAILED=e.CONNECTION_ESTABLISHED=e.CONNECTION_DISCONNECTED=void 0;e.CONNECTION_DISCONNECTED='CONNECTION_DISCONNECTED';e.CONNECTION_ESTABLISHED='CONNECTION_ESTABLISHED';e.CONNECTION_FAILED='CONNECTION_FAILED';e.CONNECTION_WILL_CONNECT='CONNECTION_WILL_CONNECT';e.SET_LOCATION_URL='SET_LOCATION_URL'},1117,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.JITSI_CONNECTION_URL_KEY=e.JITSI_CONNECTION_CONFERENCE_KEY=void 0;var N=Symbol('conference');e.JITSI_CONNECTION_CONFERENCE_KEY=N;var _=Symbol('url');e.JITSI_CONNECTION_URL_KEY=_},1118,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/connection');e.default=t},1119,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getCurrentConferenceUrl=function(u){var f,c=(0,t.toState)(u);s(c)&&(f=(0,n.toURLString)(o(c)));f&&'/'===f.substr(-1)&&(f=void 0);return f||void 0},e.getInviteURL=o,e.isInviteURLReady=s,e.getURLWithoutParams=u,e.getURLWithoutParamsNormalized=function(t){var n=u(t).href;if(n)return n.toLowerCase();return''},e.toJid=function(t,n){var o=n.authdomain,s=n.domain;return t.indexOf('@')>=0?t:t+"@"+(o||s)};var t=r(d[0]),n=r(d[1]);function o(n){var o=(0,t.toState)(n),s=o instanceof URL?o:o['features/base/connection'].locationURL;if(s||(s=o['features/base/config'].locationURL),!s)throw new Error('Can not get invite URL - the app is not ready');var f=o['features/dynamic-branding'].inviteDomain,c=u(s);return f?f+"/"+(o['features/base/config'].brandingRoomAlias||c.pathname):c.href}function s(n){var o=(0,t.toState)(n);return Boolean(o['features/base/connection'].locationURL||o['features/base/config'].locationURL)}function u(t){var n=t,o=n.hash,s=n.search;if(o&&o.length>1||s&&s.length>1){(t=new URL(t.href)).hash='',t.search='';var u=t.href;u&&(u.endsWith('#')&&(u=u.substring(0,u.length-1)),u.endsWith('?')&&(u=u.substring(0,u.length-1)),t.href===u||(t=new URL(u)))}return t}},1120,[443,506]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_START_MUTED_POLICY=e.SET_SIP_GATEWAY_ENABLED=e.SET_ROOM=e.SET_PENDING_SUBJECT_CHANGE=e.SET_PASSWORD_FAILED=e.SET_PASSWORD=e.SET_FOLLOW_ME=e.SET_DESKTOP_SHARING_ENABLED=e.SEND_TONES=e.P2P_STATUS_CHANGED=e.LOCK_STATE_CHANGED=e.KICKED_OUT=e.DATA_CHANNEL_OPENED=e.CONFERENCE_WILL_LEAVE=e.CONFERENCE_WILL_JOIN=e.CONFERENCE_TIMESTAMP_CHANGED=e.CONFERENCE_SUBJECT_CHANGED=e.CONFERENCE_LEFT=e.CONFERENCE_JOINED=e.CONFERENCE_FAILED=e.AUTH_STATUS_CHANGED=void 0;e.AUTH_STATUS_CHANGED='AUTH_STATUS_CHANGED';e.CONFERENCE_FAILED='CONFERENCE_FAILED';e.CONFERENCE_JOINED='CONFERENCE_JOINED';e.CONFERENCE_LEFT='CONFERENCE_LEFT';e.CONFERENCE_SUBJECT_CHANGED='CONFERENCE_SUBJECT_CHANGED';e.CONFERENCE_TIMESTAMP_CHANGED='CONFERENCE_TIMESTAMP_CHANGED';e.CONFERENCE_WILL_JOIN='CONFERENCE_WILL_JOIN';e.CONFERENCE_WILL_LEAVE='CONFERENCE_WILL_LEAVE';e.DATA_CHANNEL_OPENED='DATA_CHANNEL_OPENED';e.KICKED_OUT='KICKED_OUT';e.LOCK_STATE_CHANGED='LOCK_STATE_CHANGED';e.P2P_STATUS_CHANGED='P2P_STATUS_CHANGED';e.SEND_TONES='SEND_TONES';e.SET_DESKTOP_SHARING_ENABLED='SET_DESKTOP_SHARING_ENABLED';e.SET_FOLLOW_ME='SET_FOLLOW_ME';e.SET_PASSWORD='SET_PASSWORD';e.SET_PASSWORD_FAILED='SET_PASSWORD_FAILED';e.SET_PENDING_SUBJECT_CHANGE='SET_PENDING_SUBJECT_CHANGE';e.SET_ROOM='SET_ROOM';e.SET_SIP_GATEWAY_ENABLED='SET_SIP_GATEWAY_ENABLED';e.SET_START_MUTED_POLICY='SET_START_MUTED_POLICY'},1121,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.extractVpaasTenantFromPath=l,e.isVpaasMeeting=function(t){return Boolean(t['features/base/config'].billingCounterUrl&&t['features/base/jwt'].jwt&&l(t['features/base/connection'].locationURL.pathname))},e.sendCountRequest=function(t){var o,s,u,l,f,I,p;return n.default.async(function(h){for(;;)switch(h.prev=h.next){case 0:return o=t.baseUrl,s=t.billingId,u=t.jwt,l=t.tenant,f=o+"/"+encodeURIComponent(l)+"/"+s,I={Authorization:"Bearer "+u},h.prev=3,h.next=6,n.default.awrap(fetch(f,{method:'GET',headers:I}));case 6:(p=h.sent).ok||c.default.error('Status error:',p.status),h.next=13;break;case 10:h.prev=10,h.t0=h.catch(3),c.default.error('Could not send request',h.t0);case 13:case"end":return h.stop()}},null,this,[[3,10]])},e.getBillingId=function(){return s.jitsiLocalStorage.getItem(u.BILLING_ID)},e.setBillingId=function(t){s.jitsiLocalStorage.setItem(u.BILLING_ID,t)};var n=t(r(d[1])),o=t(r(d[2])),s=r(d[3]),u=r(d[4]),c=t(r(d[5]));function l(t){var n=t.split('/'),s=(0,o.default)(n,2)[1];return s.startsWith(u.VPAAS_TENANT_PREFIX)?s:''}},1122,[3,270,25,483,1123,1124]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.VPAAS_TENANT_PREFIX=e.BILLING_ID=void 0;e.BILLING_ID='billingId';e.VPAAS_TENANT_PREFIX='vpaas-magic-cookie'},1123,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/billing-counter');e.default=t},1124,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.abstractMapStateToProps=function(t){var n=t['features/base/config'].error,o=t['features/base/connection'].error,s=t['features/overlay'].fatalError;return{details:s&&s.details,isNetworkFailure:s===n||s===o,reason:s&&(s.message||s.name)}},e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),c=n(r(d[5])),u=n(r(d[6])),f=r(d[7]),v=t(r(d[8])),p=r(d[9]),h=r(d[10]),y=r(d[11]),P=n(r(d[12])),_=n(r(d[13])),b=(function(t){function n(t){var c;(0,o.default)(this,n),c=(0,s.default)(this,(0,l.default)(n).call(this,t));var u,v,p=10+(0,f.randomInt)(0,20);return c.props.isNetworkFailure?(v='dialog.conferenceDisconnectTitle',u='dialog.conferenceDisconnectMsg'):(v='dialog.conferenceReloadTitle',u='dialog.conferenceReloadMsg'),c.state={message:u,timeLeft:p,timeoutSeconds:p,title:v},c}return(0,u.default)(n,t),(0,c.default)(n,null,[{key:"needsRender",value:function(t){return'undefined'==typeof APP?Boolean(t['features/overlay'].fatalError):this.needsRenderWeb(t)}},{key:"needsRenderWeb",value:function(t){var n=t['features/base/conference'].error,o=t['features/base/config'].error,s=t['features/base/connection'].error;return s&&(0,y.isFatalJitsiConnectionError)(s)||n&&(0,y.isFatalJitsiConferenceError)(n)||o}}]),(0,c.default)(n,[{key:"componentDidMount",value:function(){var t=this;'undefined'!=typeof APP&&APP.conference&&APP.conference._room&&APP.conference._room.sendApplicationLog(JSON.stringify({name:'page.reload',label:this.props.reason})),(0,p.sendAnalytics)((0,p.createPageReloadScheduledEvent)(this.props.reason,this.state.timeoutSeconds,this.props.details)),P.default.info("The conference will be reloaded after "+this.state.timeoutSeconds+" seconds."),this._interval=setInterval(function(){0===t.state.timeLeft?(t._interval&&(clearInterval(t._interval),t._interval=void 0),t.props.dispatch((0,h.reloadNow)())):t.setState(function(t){return{timeLeft:t.timeLeft-1}})},1e3)}},{key:"componentWillUnmount",value:function(){this._interval&&(clearInterval(this._interval),this._interval=void 0)}},{key:"_renderButton",value:function(){return this.props.isNetworkFailure?v.default.createElement(_.default,{textKey:"dialog.rejoinNow"}):null}},{key:"_renderProgressBar",value:function(){var t=this.state,n=t.timeLeft,o=t.timeoutSeconds,s=o-n,l=Math.floor(s/o*100);return v.default.createElement("div",{className:"progress-indicator",id:"reloadProgressBar"},v.default.createElement("div",{className:"progress-indicator-fill",style:{width:l+"%"}}))}}]),n})(v.Component);e.default=b},1125,[2,3,4,6,9,5,10,1126,59,905,1100,879,1129,1130]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1126,[1127,1128]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.randomAlphanumString=function(t){return f(t,n)},e.randomElement=o,e.randomHexDigit=function(){return o(t)},e.randomHexString=function(n){return f(n,t)},e.randomInt=u;var n='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',t='0123456789abcdef';function o(n){return n[u(0,n.length-1)]}function u(n,t){return Math.floor(Math.random()*(t-n+1))+n}function f(n,t){for(var u='',f=0;f<n;++f)u+=o(t);return u}},1127,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.generateRoomWithoutSeparator=function(){var l=(0,s.randomElement)(n);for(;o(l);)for(var c in t){var u=(0,s.randomElement)(t[c]);l=l.replace(c,u)}return l};var s=r(d[0]),t={_ADJECTIVE_:['Able','Absent','Absolute','Abstract','Absurd','Academic','Acceptable','Accessible','Accountable','Accurate','Acid','Active','Actual','Acute','Additional','Adequate','Adjacent','Administrative','Adult','Advance','Advanced','Adverse','Aesthetic','Affordable','Afraid','Aged','Agricultural','Alert','Alien','Alike','Alive','Alone','Alternative','Amateur','Amazed','Amazing','Ambitious','Amusing','Ancient','Angry','Annoyed','Annoying','Annual','Anonymous','Anxious','Apparent','Appealing','Applicable','Appropriate','Arbitrary','Architectural','Artificial','Artistic','Ashamed','Asleep','Assistant','Associated','Astonishing','Attractive','Audio','Authentic','Automatic','Available','Average','Aware','Awful','Awkward','Back','Bad','Balanced','Bare','Based','Basic','Beautiful','Beloved','Beneficial','Bent','Best','Better','Big','Biological','Bitter','Bizarre','Blank','Blind','Blonde','Blue','Bold','Bored','Boring','Bottom','Bound','Brave','Brief','Bright','Brilliant','Broad','Broken','Brown','Busy','Calm','Capable','Capital','Capitalist','Careful','Careless','Casual','Cautious','Central','Certain','Challenging','Characteristic','Charming','Cheap','Cheerful','Chemical','Chief','Chronic','Civic','Civil','Civilian','Classic','Classical','Clean','Clear','Clever','Clinical','Close','Closed','Coastal','Cognitive','Cold','Collective','Colonial','Coloured','Colourful','Comfortable','Comic','Commercial','Common','Communist','Comparable','Comparative','Compelling','Competent','Competitive','Complete','Complex','Complicated','Comprehensive','Compulsory','Concerned','Concrete','Confident','Confused','Confusing','Congressional','Connected','Conscious','Consecutive','Conservative','Considerable','Consistent','Constant','Constitutional','Contemporary','Content','Continuous','Contrary','Controversial','Convenient','Conventional','Convinced','Convincing','Cool','Cooperative','Core','Corporate','Correct','Corresponding','Costly','Countless','Covered','Cream','Creative','Credible','Critical','Crowded','Crucial','Crude','Cruel','Cult','Cultural','Curious','Curly','Current','Curved','Cute','Cynical','Daily','Dairy','Damaging','Dangerous','Dark','Dead','Dear','Decent','Decisive','Dedicated','Deep','Defensive','Definite','Deliberate','Delicate','Delicious','Delighted','Democratic','Dense','Dependent','Depressed','Depressing','Desirable','Desperate','Destructive','Detailed','Determined','Different','Difficult','Digital','Diplomatic','Direct','Dirty','Disabled','Disappointed','Disappointing','Disastrous','Dishonest','Distant','Distinct','Distinctive','Disturbing','Diverse','Divine','Divorced','Domestic','Dominant','Double','Downstairs','Downtown','Dramatic','Dressed','Driving','Dry','Dual','Due','Dull','Dumb','Dynamic','Eager','Early','East','Eastern','Easy','Ecological','Economic','Editorial','Educated','Educational','Effective','Efficient','Elaborate','Elderly','Electoral','Electric','Electrical','Electronic','Elegant','Elementary','Eligible','Embarrassed','Embarrassing','Emotional','Empirical','Empty','Encouraging','Endless','Engaged','Engaging','Enjoyable','Enormous','Entertaining','Enthusiastic','Entire','Environmental','Equal','Equivalent','Essential','Eternal','Ethical','Ethnic','Even','Everyday','Evident','Evil','Evolutionary','Exact','Excellent','Exceptional','Excess','Excessive','Excited','Exciting','Exclusive','Executive','Exotic','Expected','Expensive','Experienced','Experimental','Expert','Explicit','Explosive','Extensive','External','Extra','Extraordinary','Extreme','Fabulous','Failed','Fair','Fake','False','Familiar','Family','Famous','Fancy','Fantastic','Far','Fascinating','Fashionable','Fast','Fat','Fatal','Favourable','Favourite','Federal','Fellow','Feminist','Few','Fierce','Final','Financial','Fine','Firm','Fit','Fixed','Flat','Flawed','Flexible','Flying','Folding','Folk','Follo
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/overlay');e.default=t},1129,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=o(r(d[2])),u=o(r(d[3])),l=o(r(d[4])),c=o(r(d[5])),f=o(r(d[6])),s=t(r(d[7])),p=r(d[8]),v=r(d[9]),_=r(d[10]),h=(function(t){function o(){return(0,n.default)(this,o),(0,l.default)(this,(0,c.default)(o).apply(this,arguments))}return(0,f.default)(o,t),(0,u.default)(o,[{key:"render",value:function(){return s.default.createElement("button",{className:'button-control button-control_overlay button-control_center',onClick:this.props._reloadNow},this.props.t(this.props.textKey))}}]),o})(s.Component);var b=(0,v.translate)((0,_.connect)(void 0,function(t){return{_reloadNow:function(){t((0,p.reloadNow)())}}})(h));e.default=b},1130,[2,3,4,5,6,9,10,59,1100,726,443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1131,[1095]);
__d(function(g,r,i,a,m,e,d){r(d[0]),r(d[1]),r(d[2]),r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8]),r(d[9]),r(d[10]),r(d[11]),r(d[12]),r(d[13]),r(d[14])},1132,[1133,1141,1149,1150,1153,1163,1171,1175,1178,1180,1181,1183,1189,1231,1233]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]),n=r(d[2]),c=r(d[3]),s=r(d[4]),O=r(d[5]),E=r(d[6]),u=r(d[7]),l=r(d[8]);function D(t){var o=(0,t.getState)()['features/authentication'].waitForOwnerTimeoutID;o&&clearTimeout(o)}function p(t){(0,t.dispatch)((0,c.hideDialog)(l.LoginDialog))}function N(t){var o=t.getState;return Boolean(o()['features/authentication'].waitForOwnerTimeoutID)}O.MiddlewareRegistry.register(function(O){return function(F){return function(h){switch(h.type){case E.CANCEL_LOGIN:var _=O.dispatch,v=(0,O.getState)()['features/authentication'].thenableWithCancel;if(v&&v.cancel(),!(0,c.isDialogOpen)(O,l.WaitForOwnerDialog)){if(N(O)){var w=F(h);return _((0,u._openWaitForOwnerDialog)()),w}p(O),_((0,t.appNavigate)(void 0))}break;case o.CONFERENCE_FAILED:var C,I=h.error;I.name===s.JitsiConferenceErrors.AUTHENTICATION_REQUIRED&&(void 0===I.recoverable&&(I.recoverable=!0),C=I.recoverable),C?O.dispatch((0,u.waitForOwner)()):O.dispatch((0,u.stopWaitForOwner)());break;case o.CONFERENCE_JOINED:N(O)&&O.dispatch((0,u.stopWaitForOwner)()),p(O);break;case o.CONFERENCE_LEFT:O.dispatch((0,u.stopWaitForOwner)());break;case n.CONNECTION_ESTABLISHED:p(O);break;case n.CONNECTION_FAILED:var T=h.error;T&&T.name===s.JitsiConnectionErrors.PASSWORD_REQUIRED&&void 0===T.recoverable&&(T.recoverable=!0,O.dispatch((0,u._openLoginDialog)()));break;case E.STOP_WAIT_FOR_OWNER:D(O),O.dispatch((0,c.hideDialog)(l.WaitForOwnerDialog));break;case E.WAIT_FOR_OWNER:D(O);var b=h.handler,f=h.timeoutMs;h.waitForOwnerTimeoutID=setTimeout(b,f),(0,c.isDialogOpen)(O,l.LoginDialog)||O.dispatch((0,u._openWaitForOwnerDialog)())}return F(h)}}})},1133,[1100,1101,1112,531,879,443,1134,1135,1136]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.WAIT_FOR_OWNER=e.UPGRADE_ROLE_STARTED=e.UPGRADE_ROLE_FINISHED=e.STOP_WAIT_FOR_OWNER=e.CANCEL_LOGIN=void 0;e.CANCEL_LOGIN='CANCEL_LOGIN';e.STOP_WAIT_FOR_OWNER='STOP_WAIT_FOR_OWNER';e.UPGRADE_ROLE_FINISHED='UPGRADE_ROLE_FINISHED';e.UPGRADE_ROLE_STARTED='UPGRADE_ROLE_STARTED';e.WAIT_FOR_OWNER='WAIT_FOR_OWNER'},1134,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.authenticateAndUpgradeRole=function(n,t,o){return function(c,u){var f,l=u()['features/base/conference'].password,s=o.authenticateAndUpgradeRole({id:n,password:t,roomPassword:l,onLoginSuccessful:function(){return c(O(s,.5))}});return c((f=s,{type:p.UPGRADE_ROLE_STARTED,thenableWithCancel:f})),s.then(function(){return c(O(s,1))},function(n){(n.authenticationError||n.connectionError)&&E.default.error('authenticateAndUpgradeRole failed',n),c(O(s,n))}),s}},e.cancelLogin=function(){return function(n,t){n({type:p.CANCEL_LOGIN});var o=t()['features/base/connection'],c=o.error,u=o.passwordRequired;u&&n((0,f.connectionFailed)(u,(0,s.set)(c,'recoverable',!1)))}},e.cancelWaitForOwner=function(){return function(n,t){n(h());var o=t()['features/base/conference'].authRequired;o&&n((0,u.conferenceLeft)(o)),n((0,c.appNavigate)(void 0))}},e._openLoginDialog=function(){return(0,l.openDialog)(_.LoginDialog)},e._openWaitForOwnerDialog=function(){return(0,l.openDialog)(_.WaitForOwnerDialog)},e.stopWaitForOwner=h,e.waitForOwner=function(){return function(n){return n({type:p.WAIT_FOR_OWNER,handler:function(){return n((0,u.checkIfCanJoin)())},timeoutMs:5e3})}};var t=n(r(d[1])),o=n(r(d[2])),c=r(d[3]),u=r(d[4]),f=r(d[5]),l=r(d[6]),s=r(d[7]),p=r(d[8]),_=r(d[9]),E=n(r(d[10]));function h(){return{type:p.STOP_WAIT_FOR_OWNER}}function O(n,c){var u,f;if('number'==typeof c)f=c;else{var l=c.authenticationError,s=c.connectionError,_=(0,o.default)(c,["authenticationError","connectionError"]);u=(0,t.default)({name:l||s},_),f=l?.5:0}return{type:p.UPGRADE_ROLE_FINISHED,error:u,progress:f,thenableWithCancel:n}}},1135,[3,53,55,1100,1101,1112,531,443,1134,1136,1140]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"LoginDialog",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"WaitForOwnerDialog",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),o=t(r(d[2]))},1136,[3,1137,1139]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),_=n(r(d[8])),h=t(r(d[9])),p=r(d[10]),C=r(d[11]),E=r(d[12]),v=r(d[13]),y=r(d[14]),L=r(d[15]),b=r(d[16]),D=r(d[17]),w=r(d[18]);r(d[19]);var R=(function(t){function n(t){var o;return(0,s.default)(this,n),(o=(0,u.default)(this,(0,c.default)(n).call(this,t))).state={username:'',password:''},o._onCancel=o._onCancel.bind((0,_.default)((0,_.default)(o))),o._onLogin=o._onLogin.bind((0,_.default)((0,_.default)(o))),o._onPasswordChange=o._onPasswordChange.bind((0,_.default)((0,_.default)(o))),o._onUsernameChange=o._onUsernameChange.bind((0,_.default)((0,_.default)(o))),o}return(0,f.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){var t=this.props,n=t._connecting,o=t._dialogStyles,s=t._styles,l=t.t;return h.default.createElement(L.CustomSubmitDialog,{okDisabled:n,onCancel:this._onCancel,onSubmit:this._onLogin},h.default.createElement(p.View,{style:s.loginDialog},h.default.createElement(p.TextInput,{autoCapitalize:'none',autoCorrect:!1,onChangeText:this._onUsernameChange,placeholder:'user@domain.com',placeholderTextColor:L.PLACEHOLDER_COLOR,style:o.field,underlineColorAndroid:L.FIELD_UNDERLINE,value:this.state.username}),h.default.createElement(p.TextInput,{autoCapitalize:'none',onChangeText:this._onPasswordChange,placeholder:l('dialog.userPassword'),placeholderTextColor:L.PLACEHOLDER_COLOR,secureTextEntry:!0,style:[o.field,L.inputDialog.bottomField],underlineColorAndroid:L.FIELD_UNDERLINE,value:this.state.password}),this._renderMessage()))}},{key:"_renderMessage",value:function(){var t,n=this.props,o=n._connecting,s=n._error,l=n._progress,u=n._styles,c=n.t,f=!1,_={};if(l&&l<1)t='connection.FETCH_SESSION_ID';else if(s){var C=s.name;if(C===D.JitsiConnectionErrors.PASSWORD_REQUIRED){var E=s.credentials;E&&E.jid===(0,v.toJid)(this.state.username,this.props._configHosts)&&E.password===this.state.password&&(t='dialog.incorrectPassword',f=!0)}else C&&(t='dialog.connectErrorWithMsg',_.msg=C+" "+s.message,f=!0)}else o&&(t='connection.CONNECTING');if(t){var y=c(t,_),L=[u.dialogText,f?u.errorMessage:u.progressMessage];return h.default.createElement(p.Text,{style:L},y)}return null}},{key:"_onUsernameChange",value:function(t){this.setState({username:t.trim()})}},{key:"_onPasswordChange",value:function(t){this.setState({password:t})}},{key:"_onCancel",value:function(){this.props.dispatch((0,w.cancelLogin)())}},{key:"_onLogin",value:function(){var t=this.props,n=t._conference,o=t.dispatch,s=this.state,l=s.password,u=s.username,c=(0,v.toJid)(u,this.props._configHosts);return o(n?(0,w.authenticateAndUpgradeRole)(c,l,n):(0,y.connect)(c,l))}}]),n})(h.Component);var S=(0,b.translate)((0,C.connect)(function(t){var n=t['features/authentication'],s=n.error,l=n.progress,u=n.thenableWithCancel,c=t['features/base/conference'].authRequired,f=t['features/base/config'].hosts,_=t['features/base/connection'],h=_.connecting,p=_.error;return(0,o.default)({},(0,L._abstractMapStateToProps)(t),{_conference:c,_configHosts:f,_connecting:Boolean(h)||Boolean(u),_error:p||s,_progress:l,_styles:E.ColorSchemeRegistry.get(t,'LoginDialog')})})(R));e.default=S},1137,[2,3,53,4,5,6,9,10,8,59,15,446,438,1112,1113,531,726,879,1135,1138]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]),l=r(d[1]);o.ColorSchemeRegistry.register('LoginDialog',{dialogText:{margin:l.BoxModel.margin,marginTop:2*l.BoxModel.margin},errorMessage:{color:(0,o.schemeColor)('errorText')},loginDialog:{flex:0,flexDirection:'column',marginBottom:l.BoxModel.margin,marginTop:l.BoxModel.margin},progressMessage:{color:(0,o.schemeColor)('text')}})},1138,[438,522]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=o(r(d[2])),l=o(r(d[3])),u=o(r(d[4])),c=o(r(d[5])),f=o(r(d[6])),s=o(r(d[7])),_=n(r(d[8])),p=r(d[9]),h=r(d[10]),v=r(d[11]),y=r(d[12]),C=(function(n){function o(n){var l;return(0,t.default)(this,o),(l=(0,u.default)(this,(0,c.default)(o).call(this,n)))._onCancel=l._onCancel.bind((0,s.default)((0,s.default)(l))),l._onLogin=l._onLogin.bind((0,s.default)((0,s.default)(l))),l}return(0,f.default)(o,n),(0,l.default)(o,[{key:"render",value:function(){var n=this.props._room;return _.default.createElement(p.ConfirmDialog,{cancelKey:"dialog.Cancel",contentKey:{key:'dialog.WaitForHostMsgWOk',params:{room:n}},okKey:"dialog.Ok",onCancel:this._onCancel,onSubmit:this._onLogin})}},{key:"_onCancel",value:function(){this.props.dispatch((0,y.cancelWaitForOwner)())}},{key:"_onLogin",value:function(){this.props.dispatch((0,y._openLoginDialog)())}}]),o})(_.Component);var k=(0,h.translate)((0,v.connect)(function(n){var o=n['features/base/conference'].authRequired;return{_room:o&&o.getName()}})(C));e.default=k},1139,[2,3,4,5,6,9,10,8,59,531,726,443,1135]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/authentication');e.default=t},1140,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),E=r(d[4]),u=r(d[5]),c=r(d[6]),_=t(r(d[7])),O=n.NativeModules.AudioMode,f=new n.NativeEventEmitter(O);function S(t){var n=[f.addListener(O.DEVICE_CHANGE_EVENT,I,t)];t.dispatch({type:c._SET_AUDIOMODE_SUBSCRIPTIONS,subscriptions:n})}function I(t){(0,this.dispatch)({type:c._SET_AUDIOMODE_DEVICES,devices:t})}function N(t){var n=(0,t.getState)()['features/mobile/audio-mode'].subscriptions;if(n){var o=n,s=Array.isArray(o),E=0;for(o=s?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var u;if(s){if(E>=o.length)break;u=o[E++]}else{if((E=o.next()).done)break;u=E.value}u.remove()}}}function A(t,n,o){var s,u=t.getState,c=n(o),f=u(),S=(0,E.getCurrentConference)(f),I=f['features/base/audio-only'].enabled;return s=S?I?O.AUDIO_CALL:O.VIDEO_CALL:O.DEFAULT,O.setMode(s).catch(function(t){return _.default.error("Failed to set audio mode "+String(s)+": "+t)}),c}u.MiddlewareRegistry.register(function(t){return function(n){return function(u){switch(u.type){case c._SET_AUDIOMODE_SUBSCRIPTIONS:N(t);break;case o.APP_WILL_UNMOUNT:t.dispatch({type:c._SET_AUDIOMODE_SUBSCRIPTIONS,subscriptions:void 0});break;case o.APP_WILL_MOUNT:S(t);case E.CONFERENCE_FAILED:case E.CONFERENCE_LEFT:case E.CONFERENCE_JOINED:case s.SET_AUDIO_ONLY:return A(t,n,u)}return n(u)}}})},1141,[3,15,956,1142,1101,443,1147,1148]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1142,[1143,1145]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setAudioOnly=f,e.toggleAudioOnly=function(){return function(n,t){var u=t()['features/base/audio-only'].enabled;return n(f(!u,!0))}};var t=n(r(d[1])),u=r(d[2]),o=r(d[3]),l=n(r(d[4]));function f(n){var f=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(y,s){s()['features/base/audio-only'].enabled!==n&&((0,u.sendAnalytics)((0,u.createAudioOnlyChangedEvent)(n)),l.default.log("Audio-only "+(n?'enabled':'disabled')),y({type:o.SET_AUDIO_ONLY,audioOnly:n,ensureVideoTrack:f}),'undefined'!=typeof APP&&APP.UI.emitEvent(t.default.TOGGLE_AUDIO_ONLY,n))}}},1143,[3,1144,905,1145,1146]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default={NICKNAME_CHANGED:'UI.nickname_changed',EMAIL_CHANGED:'UI.email_changed',AUDIO_MUTED:'UI.audio_muted',VIDEO_MUTED:'UI.video_muted',ETHERPAD_CLICKED:'UI.etherpad_clicked',SHARED_VIDEO_CLICKED:'UI.start_shared_video',UPDATE_SHARED_VIDEO:'UI.update_shared_video',TOGGLE_FULLSCREEN:'UI.toogle_fullscreen',FULLSCREEN_TOGGLED:'UI.fullscreen_toggled',AUTH_CLICKED:'UI.auth_clicked',TOGGLE_AUDIO_ONLY:'UI.toggle_audioonly',TOGGLE_FILMSTRIP:'UI.toggle_filmstrip',TOGGLE_SCREENSHARING:'UI.toggle_screensharing',HANGUP:'UI.hangup',LOGOUT:'UI.logout',VIDEO_DEVICE_CHANGED:'UI.video_device_changed',AUDIO_DEVICE_CHANGED:'UI.audio_device_changed',LOCAL_FLIPX_CHANGED:'UI.local_flipx_changed',SIDE_TOOLBAR_CONTAINER_TOGGLED:'UI.side_container_toggled',LOCAL_RAISE_HAND_CHANGED:'UI.local_raise_hand_changed',LARGE_VIDEO_AVATAR_VISIBLE:'UI.large_video_avatar_visible',LARGE_VIDEO_ID_CHANGED:'UI.large_video_id_changed'}},1144,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_AUDIO_ONLY=void 0;e.SET_AUDIO_ONLY='SET_AUDIO_ONLY'},1145,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/base/audio-only');e.default=o},1146,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._SET_AUDIOMODE_SUBSCRIPTIONS=e._SET_AUDIOMODE_DEVICES=void 0;e._SET_AUDIOMODE_DEVICES='_SET_AUDIOMODE_DEVICES';e._SET_AUDIOMODE_SUBSCRIPTIONS='_SET_AUDIOMODE_SUBSCRIPTIONS'},1147,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/mobile/audio-mode');e.default=o},1148,[495]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),s=r(d[2]),c=r(d[3]),u=n(r(d[4]));u.default.onHardwareBackPress=u.default.onHardwareBackPress.bind(u.default),c.MiddlewareRegistry.register(function(){return function(n){return function(c){switch(c.type){case s.APP_WILL_MOUNT:t.BackHandler.addEventListener('hardwareBackPress',u.default.onHardwareBackPress);break;case s.APP_WILL_UNMOUNT:t.BackHandler.removeEventListener('hardwareBackPress',u.default.onHardwareBackPress)}return n(c)}}})},1149,[3,15,956,443,1058]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),p=r(d[3]),c=r(d[4]);function u(t,n){t((0,c.appStateChanged)(n))}function _(n,s,p){var c=n.getState,u=c()['features/background'].appStateListener,_=s(p),o=c()['features/background'].appStateListener;return u!==o&&(u&&t.AppState.removeEventListener('change',u),o&&t.AppState.addEventListener('change',o)),_}s.MiddlewareRegistry.register(function(t){return function(s){return function(o){switch(o.type){case p._SET_APP_STATE_LISTENER:return _(t,s,o);case n.APP_WILL_MOUNT:var L=t.dispatch;L((0,c._setAppStateListener)(u.bind(void 0,L)));break;case n.APP_WILL_UNMOUNT:t.dispatch((0,c._setAppStateListener)(void 0))}return s(o)}}})},1150,[15,956,443,1151,1152]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.APP_STATE_CHANGED=e._SET_APP_STATE_LISTENER=void 0;e._SET_APP_STATE_LISTENER='_SET_APP_STATE_LISTENER';e.APP_STATE_CHANGED='APP_STATE_CHANGED'},1151,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._setAppStateListener=function(n){return{type:t._SET_APP_STATE_LISTENER,listener:n}},e.appStateChanged=function(n){return{type:t.APP_STATE_CHANGED,appState:n}};var t=r(d[0])},1152,[1151]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),l=t(r(d[2])),c=r(d[3]),o=r(d[4]),u=r(d[5]),s=r(d[6]),f=r(d[7]),U=r(d[8]),I=r(d[9]),C=r(d[10]),E=r(d[11]),v=t(r(d[12])),_=t(r(d[13])),D=r(d[14]),A=r(d[15]),S=n.NativeModules.AudioMode,N=v.default||_.default;function O(t,n,l){var c=t.dispatch,o=t.getState,u=n(l),s={dispatch:c,getState:o},f={_onPerformSetMutedCallAction:R,_onPerformEndCallAction:y},U=N.registerSubscriptions(s,f);return U&&c({type:D._SET_CALL_INTEGRATION_SUBSCRIPTIONS,subscriptions:U}),u}function p(t,n,l){var c=t.getState,o=n(l);if(!(0,A.isCallIntegrationEnabled)(c))return o;if(!l.error.recoverable){var u=l.conference.callUUID;u&&(delete l.conference.callUUID,N.reportCallFailed(u))}return o}function L(t,l,c){var o=t.getState,u=l(c);if(!(0,A.isCallIntegrationEnabled)(o))return u;var s=c.conference.callUUID;return s&&N.reportConnectedOutgoingCall(s).then(function(){'ios'===n.Platform.OS&&F(c.conference,o())}).catch(function(){b(o())}),u}function T(t,n,l){var c=t.getState,o=n(l);if(!(0,A.isCallIntegrationEnabled)(c))return o;var u=l.conference.callUUID;return u&&(delete l.conference.callUUID,N.endCall(u)),o}function h(t,c,u){var s=t.dispatch,C=t.getState,E=c(u);if(!(0,A.isCallIntegrationEnabled)(C))return E;var v=u.conference,_=C(),D=_['features/base/config'],S=D.callHandle,O=D.callUUID,p=(0,U.getInviteURL)(_),L=S||p.toString(),T=!(0,I.isVideoMutedByAudioOnly)(_);return v.callUUID?E:(v.callUUID=(O||l.default.v4()).toUpperCase(),N.startCall(v.callUUID,L,T).then(function(){var t=(0,f.getConferenceName)(_);N.updateCall(v.callUUID,{displayName:t,hasVideo:T}),'ios'!==n.Platform.OS&&F(v,_)}).catch(function(t){'CREATE_OUTGOING_CALL_FAILED'===t.code?(delete v.callUUID,s((0,o.appNavigate)(void 0)),n.Alert.alert('Call aborted',"There's already another call in progress. Please end it first and try again.",[{text:'OK'}],{cancelable:!1})):b(_)}),E)}function b(t){var n=(0,f.getCurrentConference)(t);if(n&&(delete n.callUUID,S.setUseConnectionService)){S.setUseConnectionService(!1);var l=!(0,I.isVideoMutedByAudioOnly)(t);S.setMode(l?S.VIDEO_CALL:S.AUDIO_CALL)}}function y(t){var n=t.callUUID,l=this.dispatch,c=this.getState,u=(0,f.getCurrentConference)(c);u&&u.callUUID===n&&(delete u.callUUID,l((0,o.appNavigate)(void 0)))}function R(t){var n=t.callUUID,l=t.muted,o=this.dispatch,u=this.getState,s=(0,f.getCurrentConference)(u);s&&s.callUUID===n&&(l=Boolean(l),(0,c.sendAnalytics)((0,c.createTrackMutedEvent)('audio','call-integration',l)),o((0,I.setAudioMuted)(l,!0)))}function M(t,n,l){var c=t.getState,o=n(l),u=c();if(!(0,A.isCallIntegrationEnabled)(u))return o;var s=(0,f.getCurrentConference)(u);return s&&s.callUUID&&N.updateCall(s.callUUID,{hasVideo:!l.audioOnly}),o}function P(t,n,l){var c=(0,t.getState)()['features/call-integration'].subscriptions;if(c){var o=c,u=Array.isArray(o),s=0;for(o=u?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var f;if(u){if(s>=o.length)break;f=o[s++]}else{if((s=o.next()).done)break;f=s.value}f.remove()}}return n(l)}function k(t,n,l){var c=t.getState,o=n(l);if(!(0,A.isCallIntegrationEnabled)(c))return o;var u=l.track.jitsiTrack,s=c(),U=(0,f.getCurrentConference)(s);if(u.isLocal()&&U&&U.callUUID)switch(u.getType()){case'audio':F(U,s);break;case'video':N.updateCall(U.callUUID,{hasVideo:!(0,I.isVideoMutedByAudioOnly)(s)})}return o}function F(t,n){var l=(0,E.isLocalTrackMuted)(n['features/base/tracks'],I.MEDIA_TYPE.AUDIO);N.setMuted(t.callUUID,l)}N&&C.MiddlewareRegistry.register(function(t){return function(n){return function(l){switch(l.type){case D._SET_CALL_INTEGRATION_SUBSCRIPTIONS:return P(t,n,l);case u.APP_WILL_MOUNT:return O(t,n,l);case u.APP_WILL_UNMOUNT:t.dispatch({type:D._SET_CALL_INTEGRATION_SUBSCRIPTIONS,subscriptions:void 0});break;case f.CONFERENCE_FAILED:return p(t,n,l);case f.CONFERENCE_JOINED:return L(t,n,l);case f.CONFERENCE_LEFT:case f.CONFERENCE_WILL_LEAVE:return T(t,n,l);case f.CONFERENCE_WILL_JOIN:return h(t,n,l);case s.SET_AUDIO_ONLY:return M(t,n,l);case E.TRACK_ADDED:case E.TRACK_REMOVED:case E.TRACK_UPDATED:return k(t,n,l)}return n(l)}}})},1153,[3,15,1154,905,110
__d(function(g,r,i,a,m,e,d){var v=r(d[0]),n=r(d[1]),o=n;o.v1=v,o.v4=n,m.exports=o},1154,[1155,1158]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]),s=r(d[1]),c=o(),n=[1|c[0],c[1],c[2],c[3],c[4],c[5]],v=16383&(c[6]<<8|c[7]),t=0,u=0;m.exports=function(o,c,f){var k=c&&f||0,l=c||[],q=void 0!==(o=o||{}).clockseq?o.clockseq:v,w=void 0!==o.msecs?o.msecs:(new Date).getTime(),h=void 0!==o.nsecs?o.nsecs:u+1,_=w-t+(h-u)/1e4;if(_<0&&void 0===o.clockseq&&(q=q+1&16383),(_<0||w>t)&&void 0===o.nsecs&&(h=0),h>=1e4)throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');t=w,u=h,v=q;var p=(1e4*(268435455&(w+=122192928e5))+h)%4294967296;l[k++]=p>>>24&255,l[k++]=p>>>16&255,l[k++]=p>>>8&255,l[k++]=255&p;var x=w/4294967296*1e4&268435455;l[k++]=x>>>8&255,l[k++]=255&x,l[k++]=x>>>24&15|16,l[k++]=x>>>16&255,l[k++]=q>>>8|128,l[k++]=255&q;for(var C=o.node||n,D=0;D<6;++D)l[k+D]=C[D];return c||s(l)}},1155,[1156,1157]);
__d(function(g,r,i,a,m,e,d){var n,t=g.crypto||g.msCrypto;if(t&&t.getRandomValues){var o=new Uint8Array(16);n=function(){return t.getRandomValues(o),o}}if(!n){var u=new Array(16);n=function(){for(var n,t=0;t<16;t++)0==(3&t)&&(n=4294967296*Math.random()),u[t]=n>>>((3&t)<<3)&255;return u}}m.exports=n},1156,[]);
__d(function(g,r,i,a,m,e,d){for(var t=[],n=0;n<256;++n)t[n]=(n+256).toString(16).substr(1);m.exports=function(n,o){var u=o||0,f=t;return f[n[u++]]+f[n[u++]]+f[n[u++]]+f[n[u++]]+'-'+f[n[u++]]+f[n[u++]]+'-'+f[n[u++]]+f[n[u++]]+'-'+f[n[u++]]+f[n[u++]]+'-'+f[n[u++]]+f[n[u++]]+f[n[u++]]+f[n[u++]]+f[n[u++]]+f[n[u++]]}},1157,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]);m.exports=function(t,f,u){var l=f&&u||0;'string'==typeof t&&(f='binary'==t?new Array(16):null,t=null);var v=(t=t||{}).random||(t.rng||n)();if(v[6]=15&v[6]|64,v[8]=63&v[8]|128,f)for(var y=0;y<16;++y)f[l+y]=v[y];return f||o(v)}},1158,[1156,1157]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),l=r(d[3]),f=o.NativeModules.RNCallKit;if(f){var u=new o.NativeEventEmitter(f);f=(0,n.default)({},f,{addListener:u.addListener.bind(u),registerSubscriptions:function(t,n){return f.setProviderConfiguration({iconTemplateImageName:'CallKitIcon',localizedName:(0,l.getName)()}),[f.addListener('performEndCallAction',n._onPerformEndCallAction,t),f.addListener('performSetMutedCallAction',n._onPerformSetMutedCallAction,t),f.addListener('providerDidReset',n._onPerformEndCallAction,t)]}})}var c=f;e.default=c},1159,[3,53,15,909]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),c=o.NativeModules.ConnectionService;if(c){var s=new o.NativeEventEmitter(c);c=(0,n.default)({},c,{addListener:s.addListener.bind(s),registerSubscriptions:function(t,n){return[c.addListener('org.jitsi.meet:features/connection_service#disconnect',n._onPerformEndCallAction,t),c.addListener('org.jitsi.meet:features/connection_service#abort',n._onPerformEndCallAction,t)]},setMuted:function(){}})}var u=c;e.default=u},1160,[3,53,15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._SET_CALL_INTEGRATION_SUBSCRIPTIONS=void 0;e._SET_CALL_INTEGRATION_SUBSCRIPTIONS='_SET_CALL_INTEGRATION_SUBSCRIPTIONS'},1161,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isCallIntegrationEnabled=function(l){var u,o=(0,n.toState)(l),s=o['features/base/settings'].disableCallIntegration,_=(0,t.getFeatureFlag)(o,t.CALL_INTEGRATION_ENABLED);return null!=(u=_)?u:!s};var t=r(d[0]),n=r(d[1])},1162,[951,443]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),E=n(r(d[2])),o=r(d[3]),c=r(d[4]),N=r(d[5]),C=r(d[6]),u=r(d[7]),_=r(d[8]),s='CONFERENCE_TERMINATED';function O(n){return n?'string'==typeof n?n:Error.prototype.toString.apply(n):''}function f(n,t){var E=n.getState()['features/base/connection'].locationURL,c=t.room;(0,o.isRoomValid)(c)&&E&&(0,_.sendEvent)(n,o.CONFERENCE_WILL_JOIN,{url:R(E)})}function R(n){return(0,N.getURLWithoutParams)(n).href}function I(n,t){var c=t.conference,N=t.type,C=(0,E.default)(t,["conference","type"]);if(c&&(C.url=R(c[o.JITSI_CONFERENCE_URL_KEY])),!v(n,t,C)){var u;switch(N){case o.CONFERENCE_FAILED:case o.CONFERENCE_LEFT:u=s;break;default:u=N}(0,_.sendEvent)(n,u,C)}}function l(n,t){var E=n.getState()['features/base/connection'].locationURL,c=t.connection;E&&(0,o.forEachConference)(n,function(n){return n.getConnection()!==c})&&(0,_.sendEvent)(n,s,{url:R(E),error:t.error.name})}function v(n,t,E){switch(t.type){case o.CONFERENCE_LEFT:return c=E,N=n.getState,C=c.url,u=!1,C&&(0,o.forEachConference)(N,function(n,t){return t&&t.toString()===C&&(u=!0),!u}),u;case o.CONFERENCE_WILL_JOIN:return!0;default:return!1}var c,N,C,u}C.MiddlewareRegistry.register(function(n){return function(C){return function(v){var F=C(v),L=v.type;switch(L){case o.CONFERENCE_FAILED:var T=v.error,b=(0,E.default)(v,["error"]);T.recoverable||I(n,(0,t.default)({error:O(T)},b));break;case o.CONFERENCE_JOINED:case o.CONFERENCE_LEFT:case o.CONFERENCE_WILL_JOIN:I(n,v);break;case N.CONNECTION_DISCONNECTED:var S=v.connection;if(!S[N.JITSI_CONNECTION_CONFERENCE_KEY]){var p=S[N.JITSI_CONNECTION_URL_KEY];(0,_.sendEvent)(n,s,{url:R(p)})}break;case N.CONNECTION_FAILED:!v.error.recoverable&&l(n,v);break;case u.ENTER_PICTURE_IN_PICTURE:(0,_.sendEvent)(n,L,{});break;case c.LOAD_CONFIG_ERROR:var y=v.error,D=v.locationURL;(0,_.sendEvent)(n,s,{error:O(y),url:R(D)});break;case o.SET_ROOM:f(n,v)}return F}}})},1163,[3,53,55,1101,917,1112,443,1164,1170]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1164,[1165,1166,1168]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.enterPictureInPicture=function(){return function(t,f){if((0,u.getFeatureFlag)(f,u.PIP_ENABLED)){var E=n.NativeModules.PictureInPicture,_='android'===o.Platform.OS?E?E.enterPictureInPicture():Promise.reject(new Error('Picture-in-Picture not supported')):Promise.resolve();_.then(function(){return t({type:P.ENTER_PICTURE_IN_PICTURE})},function(t){return c.default.warn("Error entering PiP mode: "+t)})}}};var n=r(d[1]),u=r(d[2]),o=r(d[3]),P=r(d[4]),c=t(r(d[5]))},1165,[3,15,951,539,1166,1167]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ENTER_PICTURE_IN_PICTURE=void 0;e.ENTER_PICTURE_IN_PICTURE='ENTER_PICTURE_IN_PICTURE'},1166,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/mobile/pip');e.default=t},1167,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"PictureInPictureButton",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1168,[3,1169]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),s=r(d[7]),p=r(d[8]),b=r(d[9]),v=r(d[10]),h=r(d[11]),P=r(d[12]),y=r(d[13]),_=(function(t){function s(){var t,l;(0,n.default)(this,s);for(var c=arguments.length,f=new Array(c),p=0;p<c;p++)f[p]=arguments[p];return(l=(0,u.default)(this,(t=(0,o.default)(s)).call.apply(t,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.pip',l.icon=v.IconMenuDown,l.label='toolbar.pip',l}return(0,f.default)(s,t),(0,l.default)(s,[{key:"_handleClick",value:function(){this.props.dispatch((0,y.enterPictureInPicture)())}},{key:"render",value:function(){return this.props._enabled?(0,c.default)((0,o.default)(s.prototype),"render",this).call(this):null}}]),s})(P.AbstractButton);var I=(0,b.translate)((0,h.connect)(function(t){var n=Boolean((0,p.getFeatureFlag)(t,p.PIP_ENABLED));return'android'!==s.Platform.OS||s.NativeModules.PictureInPicture.SUPPORTED||(n=!1),{_enabled:n}})(_));e.default=I},1169,[3,4,5,6,9,46,10,15,951,726,548,443,970,1165]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.sendEvent=function(o,v,l){var p=(0,t.getAppProp)(o,'externalAPIScope');p&&n.NativeModules.ExternalAPI.sendEvent(v,l,p)};var n=r(d[0]),t=r(d[1])},1170,[15,956]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),u=r(d[3]),o=r(d[4]),f=r(d[5]),c=r(d[6]),v=r(d[7]);function l(t){var n=(0,t.getState)();if('active'===n['features/background'].appState){var o=n['features/base/audio-only'].enabled,f=(0,s.getCurrentConference)(n),c=(0,u.isAnyDialogOpen)(n);I(!!f&&(!o&&!c))}}function I(n){'android'===o.Platform.OS&&(n?t.Immersive.on():t.Immersive.off())}function _(n,s,u){var f=n.getState;if('android'===o.Platform.OS){var c=f()['features/full-screen'].listener,v=s(u),l=f()['features/full-screen'].listener;return c!==l&&(c&&t.Immersive.removeImmersiveListener(c),l&&t.Immersive.addImmersiveListener(l)),v}return s(u)}f.MiddlewareRegistry.register(function(t){return function(s){return function(u){switch(u.type){case c._SET_IMMERSIVE_LISTENER:return _(t,s,u);case n.APP_WILL_MOUNT:var o=s(u);return t.dispatch((0,v._setImmersiveListener)(l.bind(void 0,t))),o;case n.APP_WILL_UNMOUNT:t.dispatch((0,v._setImmersiveListener)(void 0))}return s(u)}}}),f.StateListenerRegistry.register(function(t){var n=t['features/base/audio-only'].enabled,o=(0,s.getCurrentConference)(t),f=(0,u.isAnyDialogOpen)(t);return!!o&&(!n&&!f)},function(t){return I(t)})},1171,[1172,956,1101,534,539,443,1173,1174]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Immersive=void 0;var t=r(d[0]),n=t.NativeModules.RNImmersive,s=function(){},v=!1,o='android'===t.Platform.OS?{on:function(){return n.setImmersive(!0)},off:function(){return n.setImmersive(!1)},setImmersive:function(t){return n.setImmersive(t)},getImmersive:function(){return n.getImmersive()},addImmersiveListener:function(s){t.DeviceEventEmitter.addListener('@@IMMERSIVE_STATE_CHANGED',s),v||(v=!0,n.addImmersiveListener())},removeImmersiveListener:function(n){return t.DeviceEventEmitter.removeListener('@@IMMERSIVE_STATE_CHANGED',n)}}:{on:s,off:s,setImmersive:s,getImmersive:s,addImmersiveListener:s,removeImmersiveListener:s};e.Immersive=o;var I=o;e.default=I},1172,[15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._SET_IMMERSIVE_LISTENER=void 0;e._SET_IMMERSIVE_LISTENER='_SET_IMMERSIVE_LISTENER'},1173,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._setImmersiveListener=function(n){return{type:t._SET_IMMERSIVE_LISTENER,listener:n}};var t=r(d[0])},1174,[1173]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),c=r(d[2]);n.MiddlewareRegistry.register(function(n){return function(u){return function(s){var N=u(s);switch(s.type){case c.INCOMING_CALL_ANSWERED:case c.INCOMING_CALL_DECLINED:(0,t.sendEvent)(n,s.type,{})}return N}}})},1175,[443,1176,1177]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1176,[1170]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.INCOMING_CALL_RECEIVED=e.INCOMING_CALL_DECLINED=e.INCOMING_CALL_ANSWERED=void 0;e.INCOMING_CALL_ANSWERED='INCOMING_CALL_ANSWERED';e.INCOMING_CALL_DECLINED='INCOMING_CALL_DECLINED';e.INCOMING_CALL_RECEIVED='INCOMING_CALL_RECEIVED'},1177,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),c=r(d[4]);s.MiddlewareRegistry.register(function(s){return function(u){return function(l){var p,f,R=u(l);switch(l.type){case o.TRACK_CREATE_ERROR:l.permissionDenied&&(0,n.isRoomValid)(s.getState()['features/base/conference'].room)&&(p=l.trackType,f=('video'===p?'Camera':'Microphone')+" permission is required to participate in conferences with "+p+". Please grant it in Settings.",t.Alert.alert('Permission required',f,[{text:'Cancel'},{onPress:c.openSettings,text:'Settings'}],{cancelable:!1}))}return R}}})},1178,[15,1101,443,903,1179]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.openSettings=function(){switch(t.Platform.OS){case'android':n.NativeModules.AndroidSettings.open().catch(function(){n.Alert.alert('Error opening settings','Please open settings and grant the required permissions',[{text:'OK'}])});break;case'ios':n.Linking.openURL('app-settings:')}};var n=r(d[0]),t=r(d[1])},1179,[15,539]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);r(d[2]).StateListenerRegistry.register(function(t){var o=t['features/mobile/audio-mode'].devices.filter(function(t){return t.selected})[0],u=(0,n.getCurrentConference)(t);return Boolean(u&&'EARPIECE'===(null==o?void 0:o.type))},function(n){return o=n,void t.NativeModules.Proximity.setEnabled(Boolean(o));var o})},1180,[15,1101,443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]);function u(n){n?t.default.activate():t.default.deactivate()}r(d[3]).StateListenerRegistry.register(function(t){var u=t['features/base/audio-only'].enabled,o=(0,n.getCurrentConference)(t);return Boolean(o&&!u)},function(t){return u(t)})},1181,[3,1182,1101,443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),c=n(r(d[5])),v=n(r(d[6])),f=t(r(d[7])),p=r(d[8]),k=0,y=(function(t){function n(){return(0,u.default)(this,n),(0,o.default)(this,(0,c.default)(n).apply(this,arguments))}return(0,v.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){k++,n.activate()}},{key:"componentWillUnmount",value:function(){--k||n.deactivate()}},{key:"render",value:function(){return null}}],[{key:"activate",value:function(){p.NativeModules.KCKeepAwake.activate()}},{key:"deactivate",value:function(){p.NativeModules.KCKeepAwake.deactivate()}}]),n})(f.Component);e.default=y},1182,[2,3,4,5,6,9,10,59,15]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),c=n(r(d[3])),o=r(d[4]),u=r(d[5]),f=r(d[6]),l=r(d[7]),C=r(d[8]),h=r(d[9]),S=r(d[10]),b=r(d[11]),p=t(r(d[12])),R='ios'===s.Platform.OS;function _(t){var n=t.dispatch,s=t.getState;c.subscribeToWatchReachability(function(t,c){n((0,S.setWatchReachable)(c)),E(s)}),c.subscribeToMessages(function(t,c){if(t)p.default.error('watch.subscribeToMessages error:',t);else{var u,f=c.command,S=c.sessionID,R=(u=s(),(0,h.toState)(u)['features/mobile/watchos'].sessionID);if(S&&S===R)switch(f){case b.CMD_HANG_UP:void 0!==typeof(0,l.getCurrentConferenceUrl)(s())&&n((0,o.appNavigate)(void 0));break;case b.CMD_JOIN_CONFERENCE:var _=c.data;(0,l.getCurrentConferenceUrl)(s())!==_&&n((0,o.appNavigate)(_));break;case b.CMD_SET_MUTED:n((0,C.setAudioMuted)('true'===c.muted,!0))}else p.default.warn("Ignoring outdated watch command: "+c.command+" sessionID: "+S+" current session ID: "+R)}})}function v(t){var n=(0,h.toState)(t)['features/recent-list'].slice(-b.MAX_RECENT_URLS);return n.reverse(),n}function D(t){return(0,h.toState)(t)['features/base/media'].audio.muted}function E(t){var n=(0,h.toState)(t),s=n['features/mobile/watchos'],o=s.conferenceTimestamp,u=s.sessionID;if(s.watchReachable)try{c.updateApplicationContext({conferenceTimestamp:o,conferenceURL:(0,l.getCurrentConferenceUrl)(n),micMuted:D(n),recentURLs:v(n),sessionID:u})}catch(t){p.default.error('Failed to stringify or send the context',t)}}R&&h.StateListenerRegistry.register(function(t){return t['features/recent-list']},function(t,n){E(n.getState)}),R&&h.StateListenerRegistry.register(function(t){return D(t)},function(t,n){E(n.getState)}),R&&h.StateListenerRegistry.register(function(t){return(0,l.getCurrentConferenceUrl)(t)},function(t,n){var s=n.dispatch,c=n.getState;s((0,S.setSessionId)()),E(c)}),R&&h.MiddlewareRegistry.register(function(t){return function(n){return function(s){switch(s.type){case u.APP_WILL_MOUNT:_(t);break;case f.CONFERENCE_JOINED:t.dispatch((0,S.setConferenceTimestamp)((new Date).getTime())),E(t.getState())}return n(s)}}})},1183,[3,2,15,1184,1100,956,1101,1112,887,443,1185,1187,1188]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.sendMessage=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return t.sendMessage(n,function(n){return o(null,n)},function(n){return o(n)})},e.subscribeToMessages=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return C(s,function(o){var c=o.id,u=c?function(n){return t.replyToMessageWithId(c,n)}:null;n(null,o,u)})},e.sendMessageData=function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};return new Promise(function(u,s){t.sendMessageData(n,o,function(n){c(null,n),u(n)},function(n){c(n),s(n)})})},e.subscribeToFileTransfers=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=[C(u,function(t){return n(null,t)}),C(c,function(t,o){return n(t,o)})];return function(){return t.forEach(function(n){return n()})}},e.transferFile=function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};return new Promise(function(u,s){t.transferFile(n,o,function(n){u(n),c(null,n)},function(n){s(n),c(n)})})},e.subscribeToWatchState=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return W(n),C(f,function(t){return n(null,E[t.state])})},e.getWatchState=W,e.subscribeToWatchReachability=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return p(n),C(l,function(t){return n(null,t.reachability)})},e.getWatchReachability=p,e.getIsPaired=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return new Promise(function(o){t.getIsPaired(function(t){n(null,t),o(t)})})},e.getIsWatchAppInstalled=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return new Promise(function(o){t.getIsWatchAppInstalled(function(t){n(null,t),o(t)})})},e.subscribeToUserInfo=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return b(n),C(v,function(t){return n(null,t)})},e.sendUserInfo=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.sendUserInfo(n)},e.getUserInfo=b,e.updateApplicationContext=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.updateApplicationContext(n)},e.subscribeToApplicationContext=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};return A(n),C(S,function(t){return n(null,t)})},e.getApplicationContext=A,e._subscribe=C,e.sendComplicationUserInfo=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.sendComplicationUserInfo(n)},e.Encoding=e.WatchState=void 0;var n=r(d[0]),t=n.NativeModules.RNWatch,o=new n.NativeEventEmitter(t),c='WatchFileTransferError',u='WatchFileTransferFinished',s='WatchReceiveMessage',f='WatchStateChanged',l='WatchReachabilityChanged',v='WatchUserInfoReceived',S='WatchApplicationContextReceived',h={NotActivated:'NotActivated',Inactive:'Inactive',Activated:'Activated'};e.WatchState=h;var E={WCSessionActivationStateNotActivated:h.NotActivated,WCSessionActivationStateInactive:h.Inactive,WCSessionActivationStateActivated:h.Activated},N={NSASCIIStringEncoding:1,NSNEXTSTEPStringEncoding:2,NSJapaneseEUCStringEncoding:3,NSUTF8StringEncoding:4,NSISOLatin1StringEncoding:5,NSSymbolStringEncoding:6,NSNonLossyASCIIStringEncoding:7,NSShiftJISStringEncoding:8,NSISOLatin2StringEncoding:9,NSUnicodeStringEncoding:10,NSWindowsCP1251StringEncoding:11,NSWindowsCP1252StringEncoding:12,NSWindowsCP1253StringEncoding:13,NSWindowsCP1254StringEncoding:14,NSWindowsCP1250StringEncoding:15,NSISO2022JPStringEncoding:21,NSMacOSRomanStringEncoding:30,NSUTF16StringEncoding:10,NSUTF16BigEndianStringEncoding:2415919360,NSUTF16LittleEndianStringEncoding:2483028224,NSUTF32StringEncoding:2348810496,NSUTF32BigEndianStringEncoding:2550137088,NSUTF32LittleEndianStringEncoding:2617245952};e
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setConferenceTimestamp=function(n){return{type:t.SET_CONFERENCE_TIMESTAMP,conferenceTimestamp:n}},e.setSessionId=function(){return{type:t.SET_SESSION_ID,sessionID:(new Date).getTime()}},e.setWatchReachable=function(n){return{type:t.SET_WATCH_REACHABLE,watchReachable:n}};var t=r(d[0])},1185,[1186]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_WATCH_REACHABLE=e.SET_SESSION_ID=e.SET_CONFERENCE_TIMESTAMP=void 0;var E=Symbol('WATCH_OS_SET_CONFERENCE_TIMESTAMP');e.SET_CONFERENCE_TIMESTAMP=E;var _=Symbol('WATCH_OS_SET_SESSION_ID');e.SET_SESSION_ID=_;var S=Symbol('WATCH_OS_SET_WATCH_REACHABLE');e.SET_WATCH_REACHABLE=S},1186,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.MAX_RECENT_URLS=e.CMD_SET_MUTED=e.CMD_JOIN_CONFERENCE=e.CMD_HANG_UP=void 0;e.CMD_HANG_UP='hangup';e.CMD_JOIN_CONFERENCE='joinConference';e.CMD_SET_MUTED='setMuted';e.MAX_RECENT_URLS=10},1187,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/mobile/watchos');e.default=t},1188,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),u=r(d[4]),f=r(d[5]),h=r(d[6]),s=t(r(d[7]));c.MiddlewareRegistry.register(function(t){return function(c){return function(l){switch(l.type){case f.BEGIN_SHARE_ROOM:R=l.roomURL,_=(S=t).dispatch,v=S.getState,(0,u.getShareInfoText)(v(),R).then(function(t){var c=(0,o.getName)()+" Conference",u=function(t){return _((0,h.endShareRoom)(R,t))};n.Share.share({message:t,title:c},{dialogTitle:c,subject:c}).then(function(t){u(t.action===n.Share.sharedAction)},function(t){s.default.error("Failed to share conference/room URL "+R+":",t),u(!1)})})}var R,S,_,v;return c(l)}}})},1189,[3,15,909,443,1190,1200,1199,1230]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1190,[1191,1209,1202]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={doInvitePeople:!0};e.doInvitePeople=function(){return function(t,_){var E=_(),P=(0,n.getFeatureFlag)(E,n.ADD_PEOPLE_ENABLED,!0)&&((0,c.isAddPeopleEnabled)(E)||(0,c.isDialOutEnabled)(E));return t(P?(0,o.setActiveModalId)(u.ADD_PEOPLE_DIALOG_VIEW_ID):(0,l.beginShareRoom)())}};var n=r(d[0]),o=r(d[1]),l=r(d[2]),u=r(d[3]),c=r(d[4]),_=r(d[5]);Object.keys(_).forEach(function(n){"default"!==n&&"__esModule"!==n&&(Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return _[n]}}))})},1191,[951,1192,1198,1201,1202,1204]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1192,[1193,1194,1195]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setActiveModalId=function(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{activeModalId:o,modalProps:n,type:t.SET_ACTIVE_MODAL_ID}};var t=r(d[0])},1193,[1194]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_ACTIVE_MODAL_ID=void 0;e.SET_ACTIVE_MODAL_ID='SET_ACTIVE_MODAL_ID'},1194,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"JitsiModal",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1195,[3,1196]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=o(r(d[2])),s=o(r(d[3])),n=o(r(d[4])),u=o(r(d[5])),f=o(r(d[6])),c=o(r(d[7])),h=o(r(d[8])),p=t(r(d[9])),_=r(d[10]),v=r(d[11]),y=r(d[12]),C=r(d[13]),w=(r(d[14]),r(d[15])),R=o(r(d[16])),b=(function(t){function o(t){var l;return(0,s.default)(this,o),(l=(0,u.default)(this,(0,f.default)(o).call(this,t)))._onRequestClose=l._onRequestClose.bind((0,h.default)((0,h.default)(l))),l}return(0,c.default)(o,t),(0,n.default)(o,[{key:"render",value:function(){var t=this.props,o=t._headerStyles,s=t._show,n=t._styles,u=t.children,f=t.footerComponent,c=t.headerProps,h=t.position,v=t.style;return p.default.createElement(y.SlidingView,{onHide:this._onRequestClose,position:h,show:s},p.default.createElement(_.KeyboardAvoidingView,{behavior:"height",style:[o.page,n.page,v]},p.default.createElement(y.HeaderWithNavigation,(0,l.default)({},c,{onPressBack:this._onRequestClose})),p.default.createElement(_.SafeAreaView,{style:R.default.safeArea},u),f&&f()))}},{key:"_onRequestClose",value:function(){var t=this.props,o=t._show,l=t.dispatch,s=t.onClose,n=!0;return!!o&&('function'==typeof s&&(n=s()),n&&l((0,w.setActiveModalId)()),n)}}]),o})(p.PureComponent);b.defaultProps={position:'bottom'};var S=(0,C.connect)(function(t,o){return{_headerStyles:v.ColorSchemeRegistry.get(t,'Header'),_show:t['features/base/modal'].activeModalId===o.modalId,_styles:v.ColorSchemeRegistry.get(t,'Modal')}})(b);e.default=S},1196,[2,3,24,4,5,6,9,10,8,59,15,438,539,443,522,1193,1197]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]);e.default={safeArea:{flex:1}},o.ColorSchemeRegistry.register('Modal',{page:{alignItems:'stretch',backgroundColor:(0,o.schemeColor)('background')}})},1197,[438]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1198,[1199,1200]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.beginShareRoom=function(t){return function(R,u){t||(t=(0,n.getInviteURL)(u)),t&&R({type:o.BEGIN_SHARE_ROOM,roomURL:t})}},e.endShareRoom=function(n,t){return{type:o.END_SHARE_ROOM,roomURL:n,shared:t}};var n=r(d[0]),o=r(d[1])},1199,[1112,1200]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.END_SHARE_ROOM=e.BEGIN_SHARE_ROOM=void 0;e.BEGIN_SHARE_ROOM='BEGIN_SHARE_ROOM';e.END_SHARE_ROOM='END_SHARE_ROOM'},1200,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.OUTGOING_CALL_START_SOUND_ID=e.OUTGOING_CALL_RINGING_SOUND_ID=e.OUTGOING_CALL_REJECTED_SOUND_ID=e.OUTGOING_CALL_EXPIRED_SOUND_ID=e.DIAL_IN_SUMMARY_VIEW_ID=e.ADD_PEOPLE_DIALOG_VIEW_ID=void 0;e.ADD_PEOPLE_DIALOG_VIEW_ID='ADD_PEOPLE_DIALOG_VIEW_ID';e.DIAL_IN_SUMMARY_VIEW_ID='DIAL_IN_SUMMARY_VIEW_ID';e.OUTGOING_CALL_EXPIRED_SOUND_ID='OUTGOING_CALL_EXPIRED_SOUND_ID';e.OUTGOING_CALL_REJECTED_SOUND_ID='OUTGOING_CALL_REJECTED_SOUND_ID';e.OUTGOING_CALL_RINGING_SOUND_ID='OUTGOING_CALL_RINGING_SOUND_ID';e.OUTGOING_CALL_START_SOUND_ID='OUTGOING_CALL_START_SOUND_ID'},1201,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.checkDialNumber=h,e.getDialInConferenceID=p,e.getDialInNumbers=I,e.getDigitsOnly=b,e.getInviteResultsForQuery=function(n,t){var c,s=n.trim(),f=t.dialOutAuthUrl,l=t.addPeopleEnabled,v=t.dialOutEnabled,p=t.peopleSearchQueryTypes,I=t.peopleSearchUrl,y=t.jwt;c=l&&s?R(I,y,s,p):Promise.resolve([]);var D,U=s.startsWith('+');if(v&&f&&P(s)){var S=s;U||s.startsWith('1')||(S="1"+S),S=b(S),D=h(S,f)}else v&&!f?(U=!0,D=Promise.resolve({allow:!0,country:'',phone:s})):D=Promise.resolve({});return Promise.all([c,D]).then(function(n){var t=(0,u.default)(n,2),c=t[0],f=t[1],l=(0,o.default)(c),v=c.find(function(n){return'phone'===n.type});return v||'boolean'!=typeof f.allow||l.push({allowed:f.allow,country:f.country,type:'phone',number:f.phone,originalEntry:s,showCountryCodeReminder:!U}),l})},e.getInviteText=function(n){var t=n._conferenceName,o=n._localParticipantName,u=n._inviteUrl,c=n._locationUrl,s=n._dialIn,f=n._liveStreamViewURL,l=n.phoneNumber,v=n.t,h=x(u),p=o?v('info.inviteURLFirstPartPersonal',{name:o}):v('info.inviteURLFirstPartGeneral');if(p+=v('info.inviteURLSecondPart',{url:h}),f){var I=v('info.inviteLiveStream',{url:f});p=p+"\n"+I}if(S(s)){var b=v('info.invitePhone',{number:l,conferenceID:s.conferenceID}),y=v('info.invitePhoneAlternatives',{url:U(t,c),silentUrl:h+"#config.startSilent=true"});p=p+"\n"+b+"\n"+y}return p},e.getInviteTypeCounts=function(){var n={};return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach(function(t){var o=t.type;n[o]||(n[o]=0),n[o]++}),n},e.invitePeopleAndChatRooms=function(n,t,o,u){if(!u||0===u.length)return Promise.resolve();return fetch(n+"?token="+o,{body:JSON.stringify({invited:u,url:t}),method:'POST',headers:{'Content-Type':'application/json'}})},e.isAddPeopleEnabled=function(n){var t=n['features/base/config'].peopleSearchUrl;return!y(n)&&Boolean(t)},e.isDialOutEnabled=function(n){var t=n['features/base/conference'].conference;return(0,s.isLocalParticipantModerator)(n)&&t&&t.isSIPCallingSupported()},e.isGuest=y,e.searchDirectory=R,e.getShareInfoText=function(n,t,o){var s=x(t),f=void 0!==n['features/base/config'];o&&(s="<a href=\""+s+"\">"+s+"</a>");var h=c.i18next.t('share.mainText',{roomUrl:s});if(f){var b,y=(0,l.parseURIString)(t),P=y.room;if(n['features/invite'].numbers&&n['features/invite'].conferenceID)b=Promise.resolve(n['features/invite']);else{var D=n['features/base/config'],R=D.dialInConfCodeUrl,S=D.dialInNumbersUrl,O=D.hosts,j=O&&O.muc;if(!R||!S||!j)return Promise.resolve(h);b=Promise.all([I(S,P,j),p(R,P,j)]).then(function(n){var t=(0,u.default)(n,2),o=t[0],c=t[1],s=c.conference,f=c.id,l=c.message;return s&&f?{numbers:o,conferenceID:f}:Promise.reject(l)})}return b.then(function(n){var t=n.conferenceID,o=n.numbers,u=N(o)||'';return c.i18next.t('info.dialInNumber')+" "+u+" "+c.i18next.t('info.dialInConferenceID')+" "+t+"#\n\n"}).catch(function(n){return v.default.error('Error fetching numbers or conferenceID',n)}).then(function(t){var u=U(P,n['features/base/connection'].locationURL);return o&&(u="<a href=\""+u+"\">"+u+"</a>"),h+=c.i18next.t('share.dialInfoText',{defaultDialInNumber:t,dialInfoPageUrl:u})})}return Promise.resolve(h)},e.getDialInfoPageURL=U,e.getDialInfoPageURLForURIString=function(n){if(!n)return;var t=(0,l.parseURIString)(n),o=t.protocol,u=t.host,c=t.contextRoot,s=t.room;return o+"//"+u+c+"static/dialInInfo.html?room="+s},e.shouldDisplayDialIn=S,e._getDefaultPhoneNumber=N,e._decodeRoomURI=x,e.getConferenceId=function(n){return(0,f.toState)(n)['features/invite'].conferenceID},e.getDefaultDialInNumber=function(n){return N((0,f.toState)(n)['features/invite'].numbers)},e.executeDialOutRequest=function(n,o,u){var c,s;return t.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:return f.next=2,t.default.awrap(fetch(n,{method:'POST',headers:{'Content-Type':'application/json','request-id':u},body:JSON.stringify(o)}));case 2:return c=f.sent,f.next=5,t.default.awrap(c.json());case 5:return s=f.sent,f.abrupt("return",c.ok?s:Promise.reject(s));case 7:case"end":re
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/invite');e.default=t},1203,[495]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.beginAddPeople=function(){return{type:l.BEGIN_ADD_PEOPLE}},e.hideAddPeopleDialog=function(){return{type:l.HIDE_ADD_PEOPLE_DIALOG}},e.invite=function(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(l,p){var _=p(),D=(0,f.getParticipants)(_),b=_['features/invite'].calleeInfoVisible;t&&!b&&1===n.length&&'user'===n[0].type&&1===D.length&&l(I(!0,n[0]));var h=_['features/base/conference'].conference;if(void 0===h)return new Promise(function(t){l(E({invitees:n,callback:function(n){return t(n)}}))});var P=[],N=(0,o.default)(n),y=_['features/base/config'],A=y.callFlowsEnabled,S=y.inviteServiceUrl,U=y.inviteServiceCallFlowsUrl,C=(0,u.getInviteURL)(_),L=_['features/base/jwt'].jwt,R=N.filter(function(n){var t=n.type;return'phone'===t}),V=R.map(function(n){var t=n.number;return h.dial(t).then(function(){N=N.filter(function(t){return t!==n})}).catch(function(n){return v.default.error('Error inviting phone number:',n)})});P=P.concat(V);var w=N.filter(function(n){var t=n.type;return'user'===t||'room'===t});if(w.length){var T=(0,s.invitePeopleAndChatRooms)(A?U:S,C,L,w).then(function(){N=N.filter(function(n){var t=n.type;return'user'!==t&&'room'!==t})}).catch(function(n){l(I(!1)),v.default.error('Error inviting people:',n)});P.push(T)}var O=N.filter(function(n){var t=n.type;return'videosipgw'===t});return h&&O.length>0&&l((0,c.inviteVideoRooms)(h,O)),N=N.filter(function(n){var t=n.type;return'videosipgw'!==t}),Promise.all(P).then(function(){return N})}},e.updateDialInNumbers=function(){return function(n,o){var u=o(),f=u['features/base/config'],c=f.dialInConfCodeUrl,v=f.dialInNumbersUrl,I=f.hosts,E=u['features/invite'].numbersFetched,p=I&&I.muc;if(!E&&c&&v&&p){var _=u['features/base/conference'].room;Promise.all([(0,s.getDialInNumbers)(v,_,p),(0,s.getDialInConferenceID)(c,_,p)]).then(function(o){var u=(0,t.default)(o,2),f=u[0],c=u[1],s=c.conference,v=c.id,I=c.message;if(!s||!v)return Promise.reject(I);n({type:l.UPDATE_DIAL_IN_NUMBERS_SUCCESS,conferenceID:v,dialInNumbers:f})}).catch(function(t){n({type:l.UPDATE_DIAL_IN_NUMBERS_FAILED,error:t})})}}},e.setCalleeInfoVisible=I,e.addPendingInviteRequest=E,e.removePendingInviteRequests=function(){return{type:l.REMOVE_PENDING_INVITE_REQUESTS}};var t=n(r(d[1])),o=n(r(d[2])),u=r(d[3]),f=r(d[4]),c=r(d[5]),l=r(d[6]),s=r(d[7]),v=n(r(d[8]));function I(n,t){return{type:l.SET_CALLEE_INFO_VISIBLE,calleeInfoVisible:n,initialCalleeInfo:t}}function E(n){return{type:l.ADD_PENDING_INVITE_REQUEST,request:n}}},1204,[3,25,31,1112,704,1205,1208,1202,1203]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1205,[1206]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.inviteVideoRooms=function(n,t){return{type:o.SIP_GW_INVITE_ROOMS,conference:n,rooms:t}};var o=r(d[0])},1206,[1207]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SIP_GW_INVITE_ROOMS=e.SIP_GW_AVAILABILITY_CHANGED=void 0;e.SIP_GW_AVAILABILITY_CHANGED='SIP_GW_AVAILABILITY_CHANGED';e.SIP_GW_INVITE_ROOMS='SIP_GW_INVITE_ROOMS'},1207,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UPDATE_DIAL_IN_NUMBERS_SUCCESS=e.UPDATE_DIAL_IN_NUMBERS_FAILED=e.HIDE_ADD_PEOPLE_DIALOG=e.SET_CALLEE_INFO_VISIBLE=e.REMOVE_PENDING_INVITE_REQUESTS=e.BEGIN_ADD_PEOPLE=e.ADD_PENDING_INVITE_REQUEST=void 0;e.ADD_PENDING_INVITE_REQUEST='ADD_PENDING_INVITE_REQUEST';e.BEGIN_ADD_PEOPLE='BEGIN_ADD_PEOPLE';e.REMOVE_PENDING_INVITE_REQUESTS='REMOVE_PENDING_INVITE_REQUESTS';e.SET_CALLEE_INFO_VISIBLE='SET_CALLEE_INFO_VISIBLE';e.HIDE_ADD_PEOPLE_DIALOG='HIDE_ADD_PEOPLE_DIALOG';e.UPDATE_DIAL_IN_NUMBERS_FAILED='UPDATE_DIAL_IN_NUMBERS_FAILED';e.UPDATE_DIAL_IN_NUMBERS_SUCCESS='UPDATE_DIAL_IN_NUMBERS_SUCCESS'},1208,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1209,[1210,1216,1221]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1210,[1211]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AddPeopleDialog",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"InviteButton",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},1211,[3,1212,1215]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),s=n(r(d[3])),u=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),h=n(r(d[8])),y=n(r(d[9])),_=n(r(d[10])),v=r(d[11]),I=r(d[12]),p=r(d[13]),S=r(d[14]),b=r(d[15]),E=r(d[16]),k=r(d[17]),P=r(d[18]),T=r(d[19]),F=r(d[20]),x=t(r(d[21])),V=t(r(d[22])),A=(function(t){function n(t){var l;return(0,s.default)(this,n),(l=(0,o.default)(this,(0,c.default)(n).call(this,t))).defaultState={addToCallError:!1,addToCallInProgress:!1,bottomPadding:!1,fieldValue:'',inviteItems:[],searchInprogress:!1,selectableItems:[]},l.state=l.defaultState,l._keyExtractor=l._keyExtractor.bind((0,h.default)((0,h.default)(l))),l._renderInvitedItem=l._renderInvitedItem.bind((0,h.default)((0,h.default)(l))),l._renderItem=l._renderItem.bind((0,h.default)((0,h.default)(l))),l._renderSeparator=l._renderSeparator.bind((0,h.default)((0,h.default)(l))),l._onClearField=l._onClearField.bind((0,h.default)((0,h.default)(l))),l._onInvite=l._onInvite.bind((0,h.default)((0,h.default)(l))),l._onPressItem=l._onPressItem.bind((0,h.default)((0,h.default)(l))),l._onShareMeeting=l._onShareMeeting.bind((0,h.default)((0,h.default)(l))),l._onTypeQuery=l._onTypeQuery.bind((0,h.default)((0,h.default)(l))),l._renderShareMeetingButton=l._renderShareMeetingButton.bind((0,h.default)((0,h.default)(l))),l._setFieldRef=l._setFieldRef.bind((0,h.default)((0,h.default)(l))),l}return(0,f.default)(n,t),(0,u.default)(n,[{key:"componentDidUpdate",value:function(t){t._isVisible!==this.props._isVisible&&this._clearState()}},{key:"render",value:function(){var t=this.props,n=t._addPeopleEnabled,l=t._dialOutEnabled,s=this.state,u=s.inviteItems,o=s.selectableItems,c='searchPlaceholder';return n?l||(c='searchPeopleOnlyPlaceholder'):c='searchCallOnlyPlaceholder',_.default.createElement(E.JitsiModal,{footerComponent:this._renderShareMeetingButton,headerProps:{forwardDisabled:this._isAddDisabled(),forwardLabelKey:'inviteDialog.send',headerLabelKey:'inviteDialog.header',onPressForward:this._onInvite},modalId:F.ADD_PEOPLE_DIALOG_VIEW_ID},_.default.createElement(v.View,{style:V.default.searchFieldWrapper},_.default.createElement(v.View,{style:V.default.searchIconWrapper},this.state.searchInprogress?_.default.createElement(v.ActivityIndicator,{color:V.DARK_GREY,size:"small"}):_.default.createElement(b.Icon,{src:b.IconSearch,style:V.default.searchIcon})),_.default.createElement(v.TextInput,{autoCorrect:!1,autoFocus:!1,onBlur:this._onFocused(!1),onChangeText:this._onTypeQuery,onFocus:this._onFocused(!0),placeholder:this.props.t("inviteDialog."+c),ref:this._setFieldRef,style:V.default.searchField,value:this.state.fieldValue}),this._renderClearButton()),Boolean(u.length)&&_.default.createElement(v.View,{style:V.default.invitedList},_.default.createElement(v.FlatList,{data:u,horizontal:!0,keyExtractor:this._keyExtractor,keyboardShouldPersistTaps:"always",renderItem:this._renderInvitedItem})),_.default.createElement(v.View,{style:V.default.resultList},_.default.createElement(v.FlatList,{ItemSeparatorComponent:this._renderSeparator,data:o,extraData:u,keyExtractor:this._keyExtractor,keyboardShouldPersistTaps:"always",renderItem:this._renderItem})))}},{key:"_clearState",value:function(){this.setState(this.defaultState)}},{key:"_getRenderableItem",value:function(t){var n=t.item;switch(n.type){case'phone':return{avatar:b.IconPhone,key:n.number,title:n.number};case'user':return{avatar:n.avatar,key:n.id||n.user_id,title:n.name};default:return null}}},{key:"_keyExtractor",value:function(t){return'user'===t.type?t.id||t.user_id:t.number}},{key:"_onClearField",value:function(){this.setState({fieldValue:''}),this._onTypeQuery('')}},{key:"_onFocused",value:function(t){var n=this;return function(){'android'===v.Platform.OS&&n.setState({bottomPadding:t})}}},{key:"_onInvite",value:function(){var t=this;this._invite(this.state.inviteItems).then(function(n){n.length?(t.setState({inviteItems:n}),t._showFailedInviteAlert()):t.props.dispatch((0,E.setActiveModalId)())})}},{key:"_onPressItem",value:function(
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t){var l=t['features/base/config'],n=l.callFlowsEnabled,s=l.dialOutAuthUrl,u=l.peopleSearchQueryTypes,o=l.peopleSearchUrl;return{_addPeopleEnabled:(0,y.isAddPeopleEnabled)(t),_callFlowsEnabled:n,_dialOutAuthUrl:s,_dialOutEnabled:(0,y.isDialOutEnabled)(t),_jwt:t['features/base/jwt'].jwt,_peopleSearchQueryTypes:u,_peopleSearchUrl:o}},e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),o=t(r(d[5])),p=t(r(d[6])),f=t(r(d[7])),v=r(d[8]),c=r(d[9]),h=r(d[10]),_=r(d[11]),y=r(d[12]),b=t(r(d[13])),T=(function(t){function v(t){var l;return(0,n.default)(this,v),(l=(0,u.default)(this,(0,o.default)(v).call(this,t)))._query=l._query.bind((0,f.default)((0,f.default)(l))),l}return(0,p.default)(v,t),(0,s.default)(v,[{key:"_invite",value:function(t){var n=this,s=(0,y.getInviteTypeCounts)(t);if((0,c.sendAnalytics)((0,c.createInviteDialogEvent)('clicked','inviteButton',(0,l.default)({},s,{inviteAllowed:this._isAddDisabled()}))),this._isAddDisabled())return Promise.resolve([]);this.setState({addToCallInProgress:!0});var u=this.props,o=u._callFlowsEnabled,p=u.dispatch;return p((0,_.invite)(t)).then(function(s){if(n.setState({addToCallInProgress:!1}),s.length){var u=(0,y.getInviteTypeCounts)(s);b.default.error(s.length+" invites failed",u),(0,c.sendAnalytics)((0,c.createInviteDialogEvent)('error','invite',(0,l.default)({},u))),n.setState({addToCallError:!0})}else if(!o){var f,v=t.length;v>=3?f={titleArguments:{name:t[0].name,count:v-1},titleKey:'notify.invitedThreePlusMembers'}:2===v?f={titleArguments:{first:t[0].name,second:t[1].name},titleKey:'notify.invitedTwoMembers'}:v&&(f={titleArguments:{name:t[0].name},titleKey:'notify.invitedOneMember'}),f&&p((0,h.showNotification)(f,h.NOTIFICATION_TIMEOUT))}return s})}},{key:"_isAddDisabled",value:function(){return!this.state.inviteItems.length||this.state.addToCallInProgress}},{key:"_query",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',l=this.props,n={addPeopleEnabled:l._addPeopleEnabled,dialOutAuthUrl:l._dialOutAuthUrl,dialOutEnabled:l._dialOutEnabled,jwt:l._jwt,peopleSearchQueryTypes:l._peopleSearchQueryTypes,peopleSearchUrl:l._peopleSearchUrl};return(0,y.getInviteResultsForQuery)(t,n)}}]),v})(v.Component);e.default=T},1213,[3,53,4,5,6,9,10,8,59,905,706,1191,1202,1203]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.ICON_SIZE=e.LIGHT_GREY=e.DARK_GREY=e.AVATAR_SIZE=void 0;var t=r(d[0]);e.AVATAR_SIZE=40;var o='rgb(28, 32, 37)';e.DARK_GREY=o;var n='rgb(209, 219, 232)';e.LIGHT_GREY=n;e.ICON_SIZE=15;var c={avatar:{backgroundColor:n},avatarText:{color:o,fontSize:12},bottomBar:{alignItems:'center',flexDirection:'row',justifyContent:'space-around'},clearButton:{alignItems:'center',justifyContent:'center',marginLeft:5},clearIcon:{color:o,fontSize:18,textAlign:'center'},clearIconContainer:{alignItems:'center',backgroundColor:"rgb(240, 243, 247)",borderRadius:12,justifyContent:'center',height:24,width:24},extraBarPadding:{paddingBottom:30},invitedList:{padding:3},itemLinesStyle:{color:'rgb(118, 136, 152)',fontSize:13},itemText:{color:o,fontSize:14,fontWeight:'normal'},itemWrapper:{alignItems:'center',flexDirection:'row',paddingLeft:5},resultList:{flex:1,padding:5},searchField:{backgroundColor:"rgb(240, 243, 247)",borderBottomRightRadius:10,borderTopRightRadius:10,color:o,flex:1,fontSize:17,paddingVertical:7},selectedIcon:{color:o,fontSize:20,marginRight:t.BoxModel.margin,padding:2},separator:{borderBottomColor:n,borderBottomWidth:1,marginLeft:85},searchFieldWrapper:{alignItems:'stretch',flexDirection:'row',height:52,paddingHorizontal:15,paddingVertical:8},searchIcon:{color:o,fontSize:15},searchIconWrapper:{alignItems:'center',backgroundColor:"rgb(240, 243, 247)",borderBottomLeftRadius:10,borderTopLeftRadius:10,flexDirection:'row',justifyContent:'center',width:31},shareIcon:{fontSize:42},unselectIcon:{color:n,fontSize:16,left:-13.333333333333334,position:'relative',top:-13.333333333333334}};e.default=c},1214,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),s=r(d[6]),f=r(d[7]),b=r(d[8]),v=r(d[9]),h=r(d[10]),p=r(d[11]),y=(function(t){function s(){var t,n;(0,l.default)(this,s);for(var u=arguments.length,f=new Array(u),v=0;v<u;v++)f[v]=arguments[v];return(n=(0,o.default)(this,(t=(0,c.default)(s)).call.apply(t,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.shareRoom',n.icon=b.IconAddPeople,n.label='toolbar.shareRoom',n}return(0,u.default)(s,t),(0,n.default)(s,[{key:"_handleClick",value:function(){this.props.dispatch((0,p.doInvitePeople)())}}]),s})(h.AbstractButton);var _=(0,f.translate)((0,v.connect)(function(t,l){var n=t['features/base/config'].disableInviteFunctions;return{visible:(0,s.getFeatureFlag)(t,s.INVITE_ENABLED,!0)&&!n&&l.visible}})(y));e.default=_},1215,[3,4,5,6,9,10,951,726,548,443,970,1191]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1216,[1217]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DialInSummary",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},1217,[3,1218]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),_=t(r(d[8])),p=r(d[9]),h=r(d[10]),v=r(d[11]),I=r(d[12]),L=r(d[13]),y=r(d[14]),b=r(d[15]),E=r(d[16]),U=r(d[17]),R=n(r(d[18])),D=t(r(d[19])),k=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,u.default)(this,(0,s.default)(n).call(this,t)))._onError=l._onError.bind((0,c.default)((0,c.default)(l))),l._onNavigate=l._onNavigate.bind((0,c.default)((0,c.default)(l))),l._renderLoading=l._renderLoading.bind((0,c.default)((0,c.default)(l))),l}return(0,f.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){var t=this.props._summaryUrl;return _.default.createElement(L.JitsiModal,{headerProps:{headerLabelKey:'info.label'},modalId:E.DIAL_IN_SUMMARY_VIEW_ID,style:D.default.backDrop},_.default.createElement(h.WebView,{onError:this._onError,onShouldStartLoadWithRequest:this._onNavigate,renderLoading:this._renderLoading,source:{uri:(0,U.getDialInfoPageURLForURIString)(t)},startInLoadingState:!0,style:D.default.webView}))}},{key:"_onError",value:function(){this.props.dispatch((0,L.setActiveModalId)()),this.props.dispatch((0,v.openDialog)(R.default))}},{key:"_onNavigate",value:function(t){var n=t.url;return n.startsWith('tel:')&&(p.Linking.openURL(n),this.props.dispatch((0,L.setActiveModalId)())),n===(0,U.getDialInfoPageURLForURIString)(this.props._summaryUrl)}},{key:"_renderLoading",value:function(){return _.default.createElement(p.View,{style:D.default.indicatorWrapper},_.default.createElement(y.LoadingIndicator,{color:D.INDICATOR_COLOR,size:"large"}))}}]),n})(_.Component);var M=(0,I.translate)((0,b.connect)(function(t){return{_summaryUrl:(t['features/base/modal'].modalProps||{}).summaryUrl}})(k));e.default=M},1218,[2,3,4,5,6,9,10,8,59,15,989,531,726,1192,539,443,1201,1202,1219,1220]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),s=t(r(d[7])),v=r(d[8]),y=r(d[9]),p=r(d[10]),_=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return s.default.createElement(v.AlertDialog,{contentKey:"info.dialInSummaryError"})}}]),n})(s.Component),h=(0,y.translate)((0,p.connect)()(_));e.default=h},1219,[2,3,4,5,6,9,10,59,531,726,443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.INDICATOR_COLOR=void 0;var o=r(d[0]),t=o.ColorPalette.lightGrey;e.INDICATOR_COLOR=t;var l={backDrop:{backgroundColor:"rgb(71, 71, 71)"},indicatorWrapper:{alignItems:'center',backgroundColor:o.ColorPalette.white,height:'100%',justifyContent:'center'},webView:{backgroundColor:"rgb(71, 71, 71)",flex:1}};e.default=l},1220,[522]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"CalleeInfoContainer",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},1221,[3,1222]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),c=l(r(d[6])),s=t(r(d[7])),v=r(d[8]),p=l(r(d[9])),_=(function(t){function l(){return(0,n.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,c.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){return this.props._calleeInfoVisible?s.default.createElement(p.default,null):null}}]),l})(s.Component);var b=(0,v.connect)(function(t){return{_calleeInfoVisible:t['features/invite'].calleeInfoVisible}})(_);e.default=b},1222,[2,3,4,5,6,9,10,59,443,1223]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),f=n(r(d[5])),c=n(r(d[6])),o=n(r(d[7])),_=n(r(d[8])),v=t(r(d[9])),y=r(d[10]),p=r(d[11]),h=r(d[12]),E=r(d[13]),P=r(d[14]),C=r(d[15]),M=r(d[16]),I=n(r(d[17])),b=(function(t){function n(){return(0,s.default)(this,n),(0,c.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,_.default)(n,t),(0,f.default)(n,[{key:"render",value:function(){var t=this.props._callee,n=t.id,l=t.name,s=t.status,f=void 0===s?M.CALLING:s,c=this.props._isVideoMuted?'solidBG':void 0;return v.default.createElement(E.Container,(0,u.default)({},this._style('ringing',c),{id:"ringOverlay"}),v.default.createElement(E.Container,this._style('ringing__content'),v.default.createElement(y.Avatar,(0,u.default)({},this._style('ringing__avatar'),{participantId:n})),v.default.createElement(E.Container,this._style('ringing__status'),v.default.createElement(M.PresenceLabel,(0,u.default)({defaultPresence:f},this._style('ringing__text')))),v.default.createElement(E.Container,this._style('ringing__name'),v.default.createElement(E.Text,this._style('ringing__text'),l))))}},{key:"_style",value:function(){for(var t,n='',u=arguments.length,s=new Array(u),f=0;f<u;f++)s[f]=arguments[f];for(var c=0;c<s.length;c++){var o=s[c];o&&(I.default&&o in I.default?t=(0,l.default)({},t,I.default[o]):n+=o+" ")}var _={};return n&&(_.className=n.trim()),t&&(_.style=t),_}}]),n})(v.Component);var k=(0,P.connect)(function(t){var n=(0,C.isLocalTrackMuted)(t['features/base/tracks'],p.MEDIA_TYPE.VIDEO),l=(0,h.getParticipants)(t).find(function(t){return'poltergeist'===t.botType});if(l){var u=l.id;return{_callee:{id:u,name:(0,h.getParticipantDisplayName)(t,u),status:(0,h.getParticipantPresenceStatus)(t,u)},_isVideoMuted:n}}return{_callee:t['features/invite'].initialCalleeInfo,_isVideoMuted:n}})(b);e.default=k},1223,[2,3,53,24,4,5,6,9,10,59,544,887,704,539,443,903,1224,1229]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1224,[1225,1227]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"PresenceLabel",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},1225,[3,1226]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),s=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),p=n(r(d[7])),o=t(r(d[8])),v=r(d[9]),_=r(d[10]),h=r(d[11]),y=r(d[12]),P=r(d[13]),T=r(d[14]),x=(function(t){function n(){return(0,l.default)(this,n),(0,c.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=this._getPresenceText();if(null===t)return null;var n=this.props,l=n.style,s=n.className;return o.default.createElement(h.Text,(0,u.default)({className:s},l),t)}},{key:"_getPresenceText",value:function(){var t=this.props,n=t._presence,u=t.t;if(!n)return null;var l=P.STATUS_TO_I18N_KEY[n];return l?u(l):n}}]),n})(o.Component);x.defaultProps={_presence:''};var I=(0,v.translate)((0,y.connect)(function(t,n){var u=(0,_.getParticipantById)(t,n.participantID);return{_presence:(0,T.presenceStatusDisabled)()?'':(null==u?void 0:u.presence)||n.defaultPresence}})(x));e.default=I},1226,[2,3,24,4,5,6,9,10,59,726,704,539,443,1227,1228]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.STATUS_TO_I18N_KEY=e.DISCONNECTED=e.CONNECTED_PHONE_NUMBER=e.CONNECTING2=e.CONNECTING=e.INITIALIZING_CALL=e.EXPIRED=e.IGNORED=e.REJECTED=e.BUSY=e.CONNECTED_USER=e.RINGING=e.CALLING=e.INVITED=void 0;var t,c=n(r(d[1]));e.INVITED="Invited";e.CALLING="calling";e.RINGING="ringing";e.CONNECTED_USER="connected";e.BUSY="busy";e.REJECTED="rejected";e.IGNORED="ignored";e.EXPIRED="expired";e.INITIALIZING_CALL="Initializing Call";e.CONNECTING="Connecting";e.CONNECTING2="Connecting*";e.CONNECTED_PHONE_NUMBER="Connected";e.DISCONNECTED="Disconnected";var N=(t={},(0,c.default)(t,"Invited",'presenceStatus.invited'),(0,c.default)(t,"ringing",'presenceStatus.ringing'),(0,c.default)(t,"calling",'presenceStatus.calling'),(0,c.default)(t,"busy",'presenceStatus.busy'),(0,c.default)(t,"rejected",'presenceStatus.rejected'),(0,c.default)(t,"ignored",'presenceStatus.ignored'),(0,c.default)(t,"expired",'presenceStatus.expired'),(0,c.default)(t,"Initializing Call",'presenceStatus.initializingCall'),(0,c.default)(t,"Connecting",'presenceStatus.connecting'),(0,c.default)(t,"Connecting*",'presenceStatus.connecting2'),(0,c.default)(t,"Connected",'presenceStatus.connected'),(0,c.default)(t,"connected",'presenceStatus.connected'),(0,c.default)(t,"Disconnected",'presenceStatus.disconnected'),t);e.STATUS_TO_I18N_KEY=N},1227,[3,54]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.presenceStatusDisabled=function(){var n;return Boolean('undefined'!=typeof interfaceConfig&&(null==(n=interfaceConfig)?void 0:n.DISABLE_PRESENCE_STATUS))}},1228,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=r(d[2]),o=r(d[3]),c=(0,o.createStyleSheet)({ringing:(0,n.default)({},l.StyleSheet.absoluteFillObject,{alignItems:'center',backgroundColor:o.ColorPalette.black,flex:0,flexDirection:'column',justifyContent:'center',opacity:.8}),ringing__avatar:{borderRadius:50,flex:0,height:100,width:100},'ringing__caller-info':{alignItems:'center',flex:0,flexDirection:'row',justifyContent:'center'},ringing__content:{alignItems:'center',flex:0,flexDirection:'column',justifyContent:'center'},ringing__text:{color:o.ColorPalette.white}});e.default=c},1229,[3,53,15,522]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/share-room');e.default=o},1230,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),p='shared-video';function f(t,s,o,p){var f,S=o.state,l=o.time,v=o.from,h=t.dispatch,E=t.getState,L=(0,n.getLocalParticipant)(E()).id,y=null==(f=E()['features/youtube-player'])?void 0:f.status;'start'!==S&&['playing','pause','start'].includes(y)||(h((0,n.participantJoined)({conference:p,id:s,isFakeParticipant:!0,avatarURL:"https://img.youtube.com/vi/"+s+"/0.jpg",name:c.YOUTUBE_PARTICIPANT_NAME})),h((0,n.pinParticipant)(s))),L!==v&&h((0,u.setSharedVideoStatus)(s,S,l,v))}function S(t,s,o){var c=t.dispatch,p=(0,t.getState)(),f=p['features/youtube-player'],S=f.videoId,v=f.ownerId,h=f.status,E=(0,n.getLocalParticipant)(p);return'playing'===h||'start'===h||'pause'===h?v===E.id&&c((0,u.setSharedVideoStatus)(S,'stop',0,E.id)):c((0,u.showEnterVideoLinkPrompt)(function(n){return l(t,n)})),s(o)}function l(s,o){var c=s.dispatch,p=s.getState;if((0,t.getCurrentConference)(p())){var f=(0,n.getLocalParticipant)(p());c((0,u.setSharedVideoStatus)(o,'start',0,f.id))}}function v(t,n,s,o,u){s.sendCommandOnce(p,{value:t,attributes:{from:o,state:n,time:u}})}s.MiddlewareRegistry.register(function(s){return function(c){return function(p){var f,l=s.dispatch,h=(0,s.getState)(),E=(0,t.getCurrentConference)(h),L=null==(f=(0,n.getLocalParticipant)(h))?void 0:f.id,y=p.videoId,C=p.status,I=p.ownerId,P=p.time,T=h['features/youtube-player'],_=T.ownerId,b=T.videoId;switch(p.type){case o.TOGGLE_SHARED_VIDEO:S(s,c,p);break;case t.CONFERENCE_LEFT:l((0,u.setSharedVideoStatus)('','stop',0,''));break;case n.PARTICIPANT_LEFT:p.participant.id===_&&(l((0,u.setSharedVideoStatus)('','stop',0,'')),l((0,n.participantLeft)(b,E)));break;case o.SET_SHARED_VIDEO_STATUS:L===I&&v(y,C,E,L,P)}return c(p)}}}),s.StateListenerRegistry.register(function(n){return(0,t.getCurrentConference)(n)},function(t,s,o){t&&t!==o&&t.addCommandListener(p,function(o){var c=o.value,p=o.attributes,S=s.dispatch,l=s.getState,v=p.from,h=(0,n.getLocalParticipant)(l()).id,E=p.state;['playing','pause','start'].includes(E)?f(s,c,p,t):'stop'===E&&(S((0,n.participantLeft)(c,t)),h!==v&&S((0,u.setSharedVideoStatus)(c,'stop',0,v)))})})},1231,[1101,704,443,981,980,1232]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.YOUTUBE_PARTICIPANT_NAME=void 0;e.YOUTUBE_PARTICIPANT_NAME='YouTube'},1232,[]);
__d(function(g,r,i,a,m,e,d){r(d[0]),r(d[1]),r(d[2]),r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8]),r(d[9]),r(d[10]),r(d[11]),r(d[12]),r(d[13]),r(d[14]),r(d[15]),r(d[16]),r(d[17]),r(d[18]),r(d[19]),r(d[20]),r(d[21]),r(d[22]),r(d[23]),r(d[24]),r(d[25]),r(d[26]),r(d[27]),r(d[28]),r(d[29]),r(d[30]),r(d[31]),r(d[32]),r(d[33]),r(d[34]),r(d[35]),r(d[36]),r(d[37]),r(d[38]),r(d[39]),r(d[40]),r(d[41]),r(d[42]),r(d[43]),r(d[44]),r(d[45])},1233,[1234,1238,1248,1249,1257,1258,1267,1271,1275,1278,1292,1294,1295,1296,1297,1299,1303,1309,1311,1314,1315,1342,1389,1390,1398,1400,1401,1405,1406,1418,1419,1423,1437,1438,1439,1443,1450,1452,1460,1474,1476,1477,1480,1495,1502,1504]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),s=r(d[2]),c=r(d[3]),n=r(d[4]),o=r(d[5]),T=r(d[6]),u=r(d[7]),l=r(d[8]),f=r(d[9]);function v(s){var c=Date.now(),n=s['features/analytics'].localTracksDuration,o=s['features/base/conference'].conference,u=n.audio,l=n.video,f=l.camera,v=l.desktop,A=s['features/base/tracks'],D=(0,T.getLocalAudioTrack)(A),E=(0,T.getLocalVideoTrack)(A),_=(0,t.default)({},n);if(D&&!D.muted&&o?-1===u.startedTime&&(_.audio.startedTime=c):_.audio={startedTime:-1,value:u.value+(-1===u.startedTime?0:c-u.startedTime)},E&&!E.muted&&o){var k=E.videoType;-1===l[k].startedTime&&(_.video[k].startedTime=c)}else _.video={camera:{startedTime:-1,value:f.value+(-1===f.startedTime?0:c-f.startedTime)},desktop:{startedTime:-1,value:v.value+(-1===v.startedTime?0:c-v.startedTime)}};return(0,t.default)({},n,_)}o.MiddlewareRegistry.register(function(o){return function(A){return function(D){switch(D.type){case c.SET_CONFIG:'ReactNative'===navigator.product&&(0,f.resetAnalytics)();break;case s.SET_ROOM:var E=(0,f.createHandlers)(o),_=A(D);return E.then(function(t){(0,f.initAnalytics)(o,t)}),_}var k=A(D);switch(D.type){case s.CONFERENCE_JOINED:var y=o.dispatch,O=(0,o.getState)();y({type:l.UPDATE_LOCAL_TRACKS_DURATION,localTracksDuration:(0,t.default)({},v(O),{conference:{startedTime:Date.now(),value:0}})});break;case s.CONFERENCE_WILL_LEAVE:var p=o.dispatch,R=(0,o.getState)(),C=R['features/analytics'].localTracksDuration,N=(0,t.default)({},v(R),{conference:{startedTime:-1,value:Date.now()-C.conference.startedTime}});(0,f.sendAnalytics)((0,u.createLocalTracksDurationEvent)(N)),p({type:l.UPDATE_LOCAL_TRACKS_DURATION,localTracksDuration:N});break;case n.SET_NETWORK_INFO:(0,f.sendAnalytics)((0,u.createNetworkInfoEvent)({isOnline:D.isOnline,details:D.details,networkType:D.networkType}));break;case T.TRACK_ADDED:case T.TRACK_REMOVED:case T.TRACK_UPDATED:var L=o.dispatch,w=(0,o.getState)(),S=w['features/analytics'].localTracksDuration;if(-1===S.conference.startedTime||'presenter'===D.mediaType)break;L({type:l.UPDATE_LOCAL_TRACKS_DURATION,localTracksDuration:(0,t.default)({},S,v(w))})}return k}}})},1234,[3,53,1101,917,1235,443,903,906,1237,907]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1235,[1236]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._STORE_NETWORK_INFO_CLEANUP=e.SET_NETWORK_INFO=void 0;e.SET_NETWORK_INFO='SET_NETWORK_INFO';e._STORE_NETWORK_INFO_CLEANUP='STORE_NETWORK_INFO_CLEANUP'},1236,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UPDATE_LOCAL_TRACKS_DURATION=void 0;e.UPDATE_LOCAL_TRACKS_DURATION='UPDATE_LOCAL_TRACKS_DURATION'},1237,[]);
__d(function(g,r,i,a,m,e,d){var n,t=r(d[0]),c=t(r(d[1])),o=r(d[2]),s=r(d[3]),u=r(d[4]),f=r(d[5]),E=r(d[6]),v=r(d[7]),N=r(d[8]),l=r(d[9]),C=r(d[10]),p=r(d[11]),A=r(d[12]),P=r(d[13]),T=t(r(d[14]));function b(t,s,v){var N=t.dispatch,l=t.getState,C=s(v),p=v.conference,A=v.error;switch(A.name){case E.JitsiConferenceErrors.CONFERENCE_DESTROYED:var P=(0,c.default)(A.params,1)[0];N((0,u.showErrorNotification)({description:P,titleKey:'dialog.sessTerminated'})),'undefined'!=typeof APP&&APP.UI.hideStats();break;case E.JitsiConferenceErrors.CONNECTION_ERROR:var b=(0,c.default)(A.params,1)[0];N((0,f.connectionDisconnected)(l()['features/base/connection'].connection)),N((0,u.showErrorNotification)({descriptionArguments:{msg:b},descriptionKey:b?'dialog.connectErrorWithMsg':'dialog.connectError',titleKey:'connection.CONNFAIL'}));break;case E.JitsiConferenceErrors.OFFER_ANSWER_FAILED:(0,o.sendAnalytics)((0,o.createOfferAnswerFailedEvent)())}return'undefined'!=typeof APP?(void 0!==n&&(window.removeEventListener('beforeunload',n),n=void 0),C):(!A.recoverable&&p&&p.leave().catch(function(n){T.default.info('JitsiConference.leave() rejected with:',n)}),C)}function _(t,c,o){var u,f=t.dispatch,E=t.getState,v=c(o),l=o.conference,C=E()['features/base/conference'].pendingSubjectChange,p=E()['features/base/config'].requireDisplayName;return C&&f((0,A.setSubject)(C)),n=function(){f((0,A.conferenceWillLeave)(l))},window.addEventListener('beforeunload',n),!p||(null==(u=(0,N.getLocalParticipant)(E))?void 0:u.name)||l.isHidden()||f((0,s.openDisplayNamePrompt)(void 0)),v}function D(n,t,c){var o=n.dispatch,s=t(c);return'undefined'==typeof APP&&o((0,A.createConference)()),s}function I(t,c,o){var s=t.dispatch,u=t.getState,f=c(o);if(void 0!==n&&(window.removeEventListener('beforeunload',n),n=void 0),'undefined'==typeof APP){var E=o.connection,v=o.error;(0,P.forEachConference)(u,function(n){if(n.getConnection()===E){var t=(0,A.conferenceFailed)(n,v.name);void 0!==v.recoverable&&(t.error.recoverable=v.recoverable),s(t)}return!0})}return f}function O(n,t,c){var o=n.dispatch,s=n.getState,u=t(c),f=s()['features/base/conference'].subject;return f&&o({type:p.SET_PENDING_SUBJECT_CHANGE,subject:void 0}),'object'==typeof APP&&APP.API.notifySubjectChanged(f),u}function S(){void 0!==n&&(window.removeEventListener('beforeunload',n),n=void 0)}function R(n,t,c){var s=(0,n.getState)(),u=s['features/base/conference'].conference;if(!u)return t(c);var f,E=s['features/base/participants'],v=c.participant.id,l=(0,N.getParticipantById)(E,v),C=(0,N.getPinnedParticipant)(E),p=v?o.ACTION_PINNED:o.ACTION_UNPINNED,A=l&&l.local||!v&&C&&C.local;return f=A||(p===o.ACTION_PINNED?v:C&&C.id),(0,o.sendAnalytics)((0,o.createPinnedEvent)(p,f,{local:A,participant_count:u.getParticipantCount()})),t(c)}function h(n,t,c){var o=(0,n.getState)()['features/base/conference'].conference;if(o){var s=c.duration,u=c.tones,f=c.pause;o.sendTones(u,s,f)}return t(c)}function y(n,t,c){var o=n.dispatch,s=(0,n.getState)()['features/base/config'].subject;return c.room&&o((0,A.setSubject)(s)),t(c)}function L(n,t){var c,o=n.getState,s=(0,P.getCurrentConference)(o);if(s){var u=t.track.jitsiTrack;c=t.type===C.TRACK_ADDED?(0,P._addLocalTracksToConference)(s,[u]):(0,P._removeLocalTracksFromConference)(s,[u])}return c||Promise.resolve()}function w(n,t,c){var o=c.track;return o&&o.local&&o.mediaType!==v.MEDIA_TYPE.PRESENTER?L(n,c).then(function(){return t(c)}):t(c)}function F(n,t,c){var o=n.dispatch,s=n.getState,u=s()['features/base/conference'].conference,f=c.participant,E=t(c),v=(0,N.getLocalParticipant)(s);if(u&&f.id===v.id&&('name'in f&&u.setDisplayName(f.name),'role'in f&&f.role===N.PARTICIPANT_ROLE.MODERATOR)){var l=s()['features/base/conference'],C=l.pendingSubjectChange,p=l.subject;void 0!==C&&C!==p&&o((0,A.setSubject)(C))}return E}l.MiddlewareRegistry.register(function(n){return function(t){return function(c){switch(c.type){case p.CONFERENCE_FAILED:return b(n,t,c);case p.CONFERENCE_JOINED:return _(n,t,c);case f.CONNECTION_ESTABLISHED:return D(n,t,c);case f.CONNECTION_FAILED:return I(n,t,c);case p.CONFERENCE_SUBJ
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1239,[1240,1241,1247]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.openDisplayNamePrompt=function(t){return(0,o.openDialog)(n.DisplayNamePrompt,{onPostSubmit:t})};var o=r(d[0]),n=r(d[1])},1240,[531,1241]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1241,[1242]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DisplayNameLabel",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"DisplayNamePrompt",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},1242,[3,1243,1245]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),p=n(r(d[4])),c=n(r(d[5])),o=n(r(d[6])),f=t(r(d[7])),s=r(d[8]),y=r(d[9]),v=r(d[10]),_=n(r(d[11])),h=(function(t){function n(){return(0,l.default)(this,n),(0,p.default)(this,(0,c.default)(n).apply(this,arguments))}return(0,o.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){return this.props._render?f.default.createElement(s.View,{style:_.default.displayNameBackdrop},f.default.createElement(s.Text,{style:_.default.displayNameText},this.props._participantName)):null}}]),n})(f.Component);var P=(0,v.connect)(function(t,n){var l=n.participantId,u=(0,y.getLocalParticipant)(t),p=(0,y.getParticipantById)(t,l),c=p&&p.isFakeParticipant,o=Boolean(l)&&(null==u?void 0:u.id)!==l&&!(0,y.shouldRenderParticipantVideo)(t,l)&&!c;return{_participantName:(0,y.getParticipantDisplayName)(t,l),_render:o}})(h);e.default=P},1243,[2,3,4,5,6,9,10,59,15,704,443,1244]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o={displayNameBackdrop:{alignSelf:'center',backgroundColor:'rgba(28, 32, 37, 0.6)',borderRadius:4,paddingHorizontal:16,paddingVertical:4},displayNameText:{color:r(d[0]).ColorPalette.white,fontSize:14}};e.default=o},1244,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),s=r(d[7]),p=r(d[8]),y=(function(t){function p(){return(0,n.default)(this,p),(0,l.default)(this,(0,f.default)(p).apply(this,arguments))}return(0,o.default)(p,t),(0,u.default)(p,[{key:"render",value:function(){return c.default.createElement(s.InputDialog,{contentKey:"dialog.enterDisplayName",onSubmit:this._onSetDisplayName})}}]),p})(t(r(d[9])).default),v=(0,p.connect)()(y);e.default=v},1245,[3,4,5,6,9,10,59,531,443,1246]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),s=t(r(d[6])),p=r(d[7]),c=r(d[8]),v=(function(t){function p(t){var n;return(0,u.default)(this,p),(n=(0,l.default)(this,(0,f.default)(p).call(this,t)))._onSetDisplayName=n._onSetDisplayName.bind((0,s.default)((0,s.default)(n))),n}return(0,o.default)(p,t),(0,n.default)(p,[{key:"_onSetDisplayName",value:function(t){if(!t||!t.trim())return!1;var u=this.props,n=u.dispatch,l=u.onPostSubmit;return n((0,c.updateSettings)({displayName:t})),l&&l(),!0}}]),p})(p.Component);e.default=v},1246,[3,4,5,6,9,10,8,59,910]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.appendSuffix=function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'';return(n||t)+(n&&t&&n!==t?" ("+t+")":'')}},1247,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),u=r(d[4]),c=r(d[5]),f=r(d[6]),v=r(d[7]),l=r(d[8]);function h(n,o,u){for(var f=o(u),v=l._CONFIG_STORE_PREFIX+"/",h=[],p=0;;++p){var _=t.jitsiLocalStorage.key(p);if(!_)break;var b=void 0;if(_.startsWith(v)&&(b=_.substring(v.length))){var w=(0,c.parseURIString)(b),P=void 0;w&&(P=w.host)&&h.push(P)}}return h.length&&n.dispatch((0,s.addKnownDomains)(h)),f}function p(t,n,s){var u=t.dispatch,c=t.getState,f=n(s),l=c(),h=l['features/base/settings'],p={};void 0!==h.disableP2P&&(p.p2p={enabled:!h.disableP2P});var _=(0,o.getFeatureFlag)(l,'resolution');return void 0!==_&&(p.resolution=_),u((0,v.updateConfig)(p)),void 0!==window.config&&(window.config=l['features/base/config']),f}u.MiddlewareRegistry.register(function(t){return function(o){return function(s){switch(s.type){case n.APP_WILL_MOUNT:return h(t,o,s);case f.SET_CONFIG:return p(t,o,s)}return o(s)}}})},1248,[483,956,955,919,443,506,922,918,923]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),u=r(d[4]),f=r(d[5]),c=r(d[6]),l=r(d[7]),v=r(d[8]),p=r(d[9]),U=r(d[10]),y=t(r(d[11]));function L(t,n){var s,o=t.dispatch,u=t.getState,f=n.avatarURL,l=n.email,v=n.name,p=n.features;if((f||l||v)&&(s=(0,c.getLocalParticipant)(u))){var U={id:s.id,local:!0};f&&(U.avatarURL=f),l&&(U.email=l),v&&(U.name=v),p&&(U.features=p),o((0,c.participantUpdated)(U))}}function R(t,n,s){var o=t.dispatch,u=t.getState,f=n(s),c=u()['features/base/connection'].locationURL;return o((0,p.setJWT)(c?(0,U.parseJWTFromURLParams)(c):void 0)),f}function S(t,u,f){var c=f.jwt,l=(f.type,(0,s.default)(f,["jwt","type"]));if(!Object.keys(l).length)if(c){var v,p=t.getState()['features/base/config'].enableUserRolesBasedOnToken;f.isGuest=!p;try{v=(0,o.default)(c)}catch(t){y.default.error(t)}if(v){var U=v,R=U.context,S=U.iss;if(f.jwt=c,f.issuer=S,R){var b=h(R.user||{});f.callee=R.callee,f.group=R.group,f.server=R.server,f.tenant=R.tenant,f.user=b,b&&L(t,(0,n.default)({},b,{features:R.features}))}}}else if('undefined'==typeof APP){var j=t.getState()['features/base/jwt'].user;j&&T(t,j)}return u(f)}function T(t,n){var s,o=t.dispatch,u=t.getState,f=n.avatarURL,l=n.name,v=n.email;if((f||l||v)&&(s=(0,c.getLocalParticipant)(u))){var p={id:s.id,local:!0};f===s.avatarURL&&(p.avatarURL=void 0),v===s.email&&(p.email=void 0),l===s.name&&(p.name=void 0),p.features=void 0,o((0,c.participantUpdated)(p))}}function h(t){var n=t.avatar,s=t.avatarUrl,o=t.email,u=t.id,f=t.name,c={};return'string'==typeof s?c.avatarURL=s.trim():'string'==typeof n&&(c.avatarURL=n.trim()),'string'==typeof o&&(c.email=o.trim()),'string'==typeof u&&(c.id=u.trim()),'string'==typeof f&&(c.name=f.trim()),Object.keys(c).length?c:void 0}l.MiddlewareRegistry.register(function(t){return function(n){return function(s){switch(s.type){case u.SET_CONFIG:case f.SET_LOCATION_URL:return R(t,n,s);case v.SET_JWT:return S(t,n,s)}return n(s)}}})},1249,[3,53,55,1250,917,1112,704,443,1253,1254,1255,1256]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);function n(t){this.message=t}n.prototype=new Error,n.prototype.name='InvalidTokenError',m.exports=function(o,s){if('string'!=typeof o)throw new n('Invalid token specified');var p=!0===(s=s||{}).header?0:1;try{return JSON.parse(t(o.split('.')[p]))}catch(t){throw new n('Invalid token specified: '+t.message)}},m.exports.InvalidTokenError=n},1250,[1251]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);function n(n){return decodeURIComponent(t(n).replace(/(.)/g,function(t,n){var c=n.charCodeAt(0).toString(16).toUpperCase();return c.length<2&&(c='0'+c),'%'+c}))}m.exports=function(c){var o=c.replace(/-/g,"+").replace(/_/g,"/");switch(o.length%4){case 0:break;case 2:o+="==";break;case 3:o+="=";break;default:throw"Illegal base64url string!"}try{return n(o)}catch(n){return t(o)}}},1251,[1252]);
__d(function(g,r,i,a,m,e,d){var o='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';function n(o){this.message=o}n.prototype=new Error,n.prototype.name='InvalidCharacterError',m.exports='undefined'!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var w=String(t).replace(/=+$/,'');if(w.length%4==1)throw new n("'atob' failed: The string to be decoded is not correctly encoded.");for(var c,f,h=0,p=0,s='';f=w.charAt(p++);~f&&(c=h%4?64*c+f:f,h++%4)?s+=String.fromCharCode(255&c>>(-2*h&6)):0)f=o.indexOf(f);return s}},1252,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_JWT=void 0;e.SET_JWT='SET_JWT'},1253,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setJWT=function(n){return{type:t.SET_JWT,jwt:n}};var t=r(d[0])},1254,[1253]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.parseJWTFromURLParams=function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location;return(0,n.parseURLParams)(o,!0,'search').jwt};var n=r(d[0])},1255,[506]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/jwt');e.default=t},1256,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),c=r(d[4]),u=r(d[5]);function f(t){var n,o=t.dispatch,s=(0,t.getState)()['features/base/connection'].locationURL;s&&(n=s.host)&&o((0,u.addKnownDomains)(n))}s.MiddlewareRegistry.register(function(s){return function(h){return function(R){var _,p,w,L,S=h(R);switch(R.type){case n.APP_WILL_MOUNT:p=(_=s).dispatch,w=_.getState,L=(0,c.parseURIString)((0,t.getDefaultURL)(w)),p((0,u.addKnownDomains)(L.host));break;case o.SET_ROOM:f(s)}return S}}})},1257,[909,956,1101,443,506,920]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]),n=r(d[2]),c=r(d[3]),l=r(d[4]),o=r(d[5]),u=r(d[6]),f=r(d[7]),E=r(d[8]),N=r(d[9]),T=r(d[10]),I=r(d[11]),_=t(r(d[12]));function A(t){var s=(0,t.getState)(),n=s['features/base/conference'].conference,c=s['features/base/audio-only'].enabled,l=(s['features/background']||{}).appState,u=s['features/filmstrip'].enabled,f=s['features/base/config'],E=s['features/base/lastn'].lastNLimits,T=(0,N.getParticipantCount)(s);if(n){var A=void 0===f.channelLastN?-1:f.channelLastN,P=(0,I.limitLastN)(T,E);if(void 0!==P&&(A=P),void 0!==l&&'active'!==l)A=0;else if(c){var v=s['features/video-layout'].screenShares,L=(0,o.shouldDisplayTileView)(s),S=s['features/large-video'].participantId,C=S?(0,N.getParticipantById)(s,S):void 0;A=L||!C||C.local?0:(v||[]).includes(S)?1:0}else u||(A=1);if(n.getLastN()!==A){_.default.info("Setting last N to: "+A);try{n.setLastN(A)}catch(t){_.default.error("Failed to set lastN: "+t)}}}else _.default.debug('There is no active conference, not updating last N')}T.MiddlewareRegistry.register(function(t){return function(o){return function(N){var T=o(N);switch(N.type){case c.APP_STATE_CHANGED:case f.CONFERENCE_JOINED:case E.PARTICIPANT_JOINED:case E.PARTICIPANT_KICKED:case E.PARTICIPANT_LEFT:case l.SCREEN_SHARE_PARTICIPANTS_UPDATED:case n.SELECT_LARGE_VIDEO_PARTICIPANT:case u.SET_AUDIO_ONLY:case s.SET_FILMSTRIP_ENABLED:case l.SET_TILE_VIEW:A(t)}return T}}})},1258,[3,1259,1260,1151,1261,1262,1145,1121,877,878,443,1265,1266]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_HORIZONTAL_VIEW_DIMENSIONS=e.SET_TILE_VIEW_DIMENSIONS=e.SET_FILMSTRIP_VISIBLE=e.SET_FILMSTRIP_HOVERED=e.SET_FILMSTRIP_ENABLED=void 0;e.SET_FILMSTRIP_ENABLED='SET_FILMSTRIP_ENABLED';e.SET_FILMSTRIP_HOVERED='SET_FILMSTRIP_HOVERED';e.SET_FILMSTRIP_VISIBLE='SET_FILMSTRIP_VISIBLE';e.SET_TILE_VIEW_DIMENSIONS='SET_TILE_VIEW_DIMENSIONS';e.SET_HORIZONTAL_VIEW_DIMENSIONS='SET_HORIZONTAL_VIEW_DIMENSIONS'},1259,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UPDATE_KNOWN_LARGE_VIDEO_RESOLUTION=e.SELECT_LARGE_VIDEO_PARTICIPANT=void 0;e.SELECT_LARGE_VIDEO_PARTICIPANT='SELECT_LARGE_VIDEO_PARTICIPANT';e.UPDATE_KNOWN_LARGE_VIDEO_RESOLUTION='UPDATE_KNOWN_LARGE_VIDEO_RESOLUTION'},1260,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_TILE_VIEW=e.SCREEN_SHARE_PARTICIPANTS_UPDATED=void 0;e.SCREEN_SHARE_PARTICIPANTS_UPDATED='SCREEN_SHARE_PARTICIPANTS_UPDATED';e.SET_TILE_VIEW='SET_TILE_VIEW'},1261,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getCurrentLayout=function(t){if(l(t))return o.LAYOUTS.TILE_VIEW;if(interfaceConfig.VERTICAL_FILMSTRIP)return o.LAYOUTS.VERTICAL_FILMSTRIP_VIEW;return o.LAYOUTS.HORIZONTAL_FILMSTRIP_VIEW},e.getMaxColumnCount=u,e.getTileViewGridDimensions=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u(),o=t['features/base/config'].iAmRecorder,l=t['features/base/participants'].length-(o?1:0),f=Math.ceil(Math.sqrt(l)),c=Math.min(f,n),s=Math.ceil(l/c),I=Math.min(n,s);return{columns:c,visibleRows:I}},e.shouldDisplayTileView=l;var t=r(d[0]),n=r(d[1]),o=r(d[2]);function u(){var t=interfaceConfig.TILE_VIEW_MAX_COLUMNS||5;return Math.min(Math.max(t,1),5)}function l(){var o,u,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=(0,t.getParticipantCount)(l);if(f<2)return!1;var c=l['features/video-layout'].tileViewEnabled;return void 0!==c?c:!Boolean((null==(o=l['features/etherpad'])?void 0:o.editing)||'object'==typeof interfaceConfig&&(null==(u=interfaceConfig)?void 0:u.filmStripOnly)||(0,t.getPinnedParticipant)(l)||f<3||(0,n.isYoutubeVideoPlaying)(l))}},1262,[704,1263,1264]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isYoutubeVideoPlaying=function(o){return Boolean((0,n.getParticipants)(o).find(function(n){return n.isFakeParticipant&&n.name===t.YOUTUBE_PARTICIPANT_NAME}))};var n=r(d[0]),t=r(d[1])},1263,[704,1232]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.LAYOUTS=void 0;e.LAYOUTS={HORIZONTAL_FILMSTRIP_VIEW:'horizontal-filmstrip-view',TILE_VIEW:'tile-view',VERTICAL_FILMSTRIP_VIEW:'vertical-filmstrip-view'}},1264,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.validateLastNLimits=function(t){if('object'!=typeof t||!Object.keys(t).length||Object.keys(t).find(function(n){return null===n||isNaN(Number(n))||null===t[n]||isNaN(Number(t[n]))}))return;for(var n=new Map,o=Object.keys(t).map(function(t){return Number(t)}).sort(function(t,n){return t-n}),u=Array.isArray(o),f=0,o=u?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(u){if(f>=o.length)break;l=o[f++]}else{if((f=o.next()).done)break;l=f.value}var b=l;n.set(b,Number(t[b]))}return n},e.limitLastN=function(t,n){if(!n||!n.keys)return;for(var o,u=n.keys(),f=Array.isArray(u),l=0,u=f?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(f){if(l>=u.length)break;b=u[l++]}else{if((l=u.next()).done)break;b=l.value}var s=b;t>=s&&(o=s)}return o?n.get(o):void 0}},1265,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/lastn');e.default=t},1266,[495]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),l=r(d[3]),u=r(d[4]),s=r(d[5]),c=n(r(d[6])),f=r(d[7]),w=r(d[8]);function b(n,t,l){var u=n.dispatch;(0,n.getState)()['features/base/lib-jitsi-meet'].initialized&&u((0,w.disposeLib)());var s=t(l);return u((0,o.setLoggingConfig)(window.loggingConfig)),u((0,w.initLib)()),s}function I(){if(c.default.getGlobalOnErrorHandler){var n=window.onerror;window.onerror=function(t,o,l,u,s){c.default.getGlobalOnErrorHandler(t,o,l,u,s),n&&n(t,o,l,u,s)};var t=window.onunhandledrejection;window.onunhandledrejection=function(n){c.default.getGlobalOnErrorHandler(null,null,null,null,n.reason),t&&t(n)}}}s.MiddlewareRegistry.register(function(n){return function(o){return function(s){switch(s.type){case f.LIB_WILL_INIT:'undefined'!=typeof APP&&I();break;case l.SET_NETWORK_INFO:c.default.setNetworkInfo({isOnline:s.isOnline});break;case u.PARTICIPANT_LEFT:s.participant.local&&n.dispatch((0,w.disposeLib)());break;case t.SET_CONFIG:return b(n,o,s)}return o(s)}}})},1267,[3,917,1268,1235,704,443,503,883,880]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1268,[1269,1270,495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setLogCollector=function(t){return{type:o.SET_LOG_COLLECTOR,logCollector:t}},e.setLoggingConfig=function(t){return{type:o.SET_LOGGING_CONFIG,config:t}};var o=r(d[0])},1269,[1270]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_LOGGING_CONFIG=e.SET_LOG_COLLECTOR=void 0;e.SET_LOG_COLLECTOR='SET_LOG_COLLECTOR';e.SET_LOGGING_CONFIG='SET_LOGGING_CONFIG'},1270,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]),n=o(r(d[2])),l=r(d[3]),u=r(d[4]),f=t(r(d[5])),s=r(d[6]),c=r(d[7]),L=o(r(d[8])),b=o(r(d[9])),v=r(d[10]),C=r(d[11]);function p(t,o,l){var u=(0,t.getState)()['features/base/logging'].config;return E(n.default,u),'undefined'==typeof APP||E(f.default,u),o(l)}function I(t,o,n){var l=t.getState,s=o(n),c=n.conference,L=l()['features/base/logging'].logCollector;return L&&c===(0,u.getCurrentConference)(l())&&(L.start(),L.flush(),c.on(f.JitsiConferenceEvents.BEFORE_STATISTICS_DISPOSED,function(){return L.flush()})),s}function P(t,o,l){var u=t.dispatch,s=t.getState,c=s()['features/base/logging'].logCollector;if(c||o.disableLogCollector)c&&o.disableLogCollector&&(n.default.removeGlobalTransport(c),f.default.removeGlobalLogTransport(c),c.stop(),u((0,C.setLogCollector)(void 0)));else{var v=new n.default.LogCollector(new b.default(s));if(n.default.addGlobalTransport(v),f.default.addGlobalLogTransport(v),u((0,C.setLogCollector)(v)),l&&'object'==typeof APP){APP.debugLogs=new L.default;var p=new n.default.LogCollector(APP.debugLogs,{storeInterval:1e3});n.default.addGlobalTransport(p),f.default.addGlobalLogTransport(p),p.start()}}}function T(t,o,n){var l=t.getState;return'undefined'==typeof APP&&E(f.default,l()['features/base/logging'].config),o(n)}function S(t,o,l){var u=t.dispatch,s=t.getState,L=o(l),b=s()['features/base/logging'].config,v=(0,c.isTestModeEnabled)(s());return E(n.default,b),E(f.default,b),P({dispatch:u,getState:s},b,v),L}function E(t,o){t.setLogLevel(o.defaultLogLevel),Object.keys(o).forEach(function(n){return'defaultLogLevel'===n||t.setLogLevelById(o[n],n)})}s.MiddlewareRegistry.register(function(t){return function(o){return function(n){switch(n.type){case l.APP_WILL_MOUNT:return p(t,o,n);case u.CONFERENCE_JOINED:return I(t,o,n);case f.LIB_WILL_INIT:return T(t,o,n);case v.SET_LOGGING_CONFIG:return S(t,o,n)}return o(n)}}})},1271,[2,3,392,956,1101,879,443,1272,1273,1274,1270,1269]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1272,[1003,1012]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),o=t(r(d[2])),n=(function(){function t(){(0,u.default)(this,t),this.logs=[]}return(0,o.default)(t,[{key:"isReady",value:function(){return!0}},{key:"storeLogs",value:function(t){for(var u=0,o=t.length;u<o;u++){var n=t[u];'object'==typeof n?this.logs.push(n.text):this.logs.push(n)}}},{key:"getLogs",value:function(){return this.logs}}]),t})();e.default=n},1273,[3,4,5]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=r(d[3]),u=(function(){function t(o){(0,n.default)(this,t),this.counter=1,this.getState=o}return(0,o.default)(t,[{key:"isReady",value:function(){var t=this.getState()['features/base/conference'].conference;return Boolean(t)}},{key:"storeLogs",value:function(t){var n=(0,s.getCurrentConference)(this.getState());if(n&&n.isCallstatsEnabled()){for(var o="{\"log"+this.counter+"\":\"\n",u=0,c=t.length;u<c;u++){var l=t[u];l.timestamp&&(o+=l.timestamp+" "),l.count>1&&(o+="("+l.count+") "),o+=l.text+"\n"}o+='"}',this.counter+=1;try{n.sendApplicationLog(o)}catch(t){console.error("Failed to store the logs, msg length: "+o.length+"error: "+JSON.stringify(t))}}}}]),t})();e.default=u},1274,[3,4,5,1101]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),s=r(d[4]),c=t(r(d[5])),E=r(d[6]),T=r(d[7]),A=r(d[8]),l=r(d[9]),I=r(d[10]),_=t(r(d[11])),M=r(d[12]);function D(t,o,u){var s=t.dispatch,c='active'!==u.appState;return(0,n.sendAnalytics)((0,n.createTrackMutedEvent)('video','background mode',c)),s((0,l.setVideoMuted)(c,I.MEDIA_TYPE.VIDEO,I.VIDEO_MUTISM_AUTHORITY.BACKGROUND)),o(u)}function O(t,o,u){var s=t.dispatch,c=u.audioOnly,E=u.ensureVideoTrack;return(0,n.sendAnalytics)((0,n.createTrackMutedEvent)('video','audio-only mode',c)),s((0,l.setVideoMuted)(c,I.MEDIA_TYPE.VIDEO,I.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY,E)),'ReactNative'!==navigator.product&&s((0,l.setVideoMuted)(c,I.MEDIA_TYPE.PRESENTER,I.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY,E)),o(u)}function y(t,o,E){var A,D=t.dispatch,O=(0,t.getState)(),y=E.room,S=(0,s.isRoomValid)(y),v={config:!0,settings:!0,urlParams:!0,jwt:!1},p=S?Boolean((0,T.getPropertyValue)(O,'startWithAudioMuted',v)):M._AUDIO_INITIAL_MEDIA_STATE.muted,V=S?Boolean((0,T.getPropertyValue)(O,'startWithVideoMuted',v)):M._VIDEO_INITIAL_MEDIA_STATE.muted;return(0,n.sendAnalytics)((0,n.createStartMutedConfigurationEvent)('local',p,V)),_.default.log("Start muted: "+(p?'audio, ':'')+(V?'video':'')),D((0,l.setAudioMuted)(p)),D((0,l.setCameraFacingMode)(I.CAMERA_FACING_MODE.USER)),D((0,l.setVideoMuted)(V)),A=!c.default.mediaDevices.supportsVideo()||Boolean((0,T.getPropertyValue)(O,'startAudioOnly',{config:S,urlParams:!0,jwt:!1,settings:!0})),(0,n.sendAnalytics)((0,n.createStartAudioOnlyEvent)(A)),_.default.log("Start audio only set to "+A.toString()),D((0,u.setAudioOnly)(A,!1)),o(E)}function S(t,o){var u=(0,t.getState)()['features/base/media'],s=o.mediaType===I.MEDIA_TYPE.PRESENTER?I.MEDIA_TYPE.VIDEO:o.mediaType,c=Boolean(u[s].muted);o.muted!==c&&((0,n.sendAnalytics)((0,n.createSyncTrackStateEvent)(o.mediaType,c)),_.default.log("Sync "+o.mediaType+" track muted state to "+(c?'muted':'unmuted')),o.muted=c,(0,A.setTrackMuted)(o.jitsiTrack,c))}E.MiddlewareRegistry.register(function(t){return function(n){return function(c){switch(c.type){case o.APP_STATE_CHANGED:return D(t,n,c);case u.SET_AUDIO_ONLY:return O(t,n,c);case s.SET_ROOM:return y(t,n,c);case A.TRACK_ADDED:var E=n(c),T=c.track;return T.local&&'desktop'!==T.videoType&&S(t,T),E}return n(c)}}})},1275,[3,905,1276,1142,1101,879,443,910,903,888,890,896,1277]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1276,[1152,1151]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._VIDEO_INITIAL_MEDIA_STATE=e._AUDIO_INITIAL_MEDIA_STATE=void 0;var E=t(r(d[1])),n=t(r(d[2])),u=r(d[3]),_=r(d[4]),A=r(d[5]),f=r(d[6]),s=r(d[7]),I=r(d[8]),l={available:!0,muted:!1};e._AUDIO_INITIAL_MEDIA_STATE=l;var c={available:!0,facingMode:I.CAMERA_FACING_MODE.USER,muted:0,transforms:{}};function o(t){return(0,n.default)({},t,{transforms:c.transforms})}function M(t,u){var _=u.streamId,A=u.transform;return(0,n.default)({},t,{transforms:(0,n.default)({},t.transforms,(0,E.default)({},_,A))})}function T(t,E){var u=E.track.jitsiTrack;if(u){var _=u.getStreamId();if(_&&_ in t.transforms){var A=(0,n.default)({},t.transforms);return delete A[_],(0,n.default)({},t,{transforms:A})}}return t}e._VIDEO_INITIAL_MEDIA_STATE=c,A.ReducerRegistry.register('features/base/media',(0,u.combineReducers)({audio:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,E=arguments.length>1?arguments[1]:void 0;switch(E.type){case s.SET_AUDIO_AVAILABLE:return(0,n.default)({},t,{available:E.available});case s.SET_AUDIO_MUTED:return(0,n.default)({},t,{muted:E.muted});default:return t}},video:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,E=arguments.length>1?arguments[1]:void 0;switch(E.type){case _.CONFERENCE_FAILED:case _.CONFERENCE_LEFT:return o(t);case s.SET_CAMERA_FACING_MODE:return(0,n.default)({},t,{facingMode:E.cameraFacingMode});case s.SET_VIDEO_AVAILABLE:return(0,n.default)({},t,{available:E.available});case s.SET_VIDEO_MUTED:return(0,n.default)({},t,{muted:E.muted});case s.STORE_VIDEO_TRANSFORM:return M(t,E);case s.TOGGLE_CAMERA_FACING_MODE:var u=t.facingMode;return u=u===I.CAMERA_FACING_MODE.USER?I.CAMERA_FACING_MODE.ENVIRONMENT:I.CAMERA_FACING_MODE.USER,(0,n.default)({},t,{facingMode:u});case f.TRACK_REMOVED:return T(t,E);default:return t}}}))},1277,[3,54,53,465,1121,443,940,889,890]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=t(r(d[3])),u=r(d[4]),f=r(d[5]),l=r(d[6]),N=t(r(d[7]));o.MiddlewareRegistry.register(function(t){var o=t.dispatch,_=t.getState;return function(t){return function(c){var p=t(c);switch(c.type){case n.APP_WILL_MOUNT:if(s.default.isSupported()){var w=new s.default;w.addListener(l.ONLINE_STATE_CHANGED_EVENT,function(t){var n=t.isOnline,s=t.networkType,f=t.details;N.default.info('Network changed',JSON.stringify({isOnline:n,details:f,networkType:s})),o((0,u.setNetworkInfo)({isOnline:n,networkType:s,details:f}))}),o((0,u._storeNetworkInfoCleanup)(function(){w.stop(),w.removeAllListeners()})),w.start()}break;case n.APP_WILL_UNMOUNT:var T=_()[f.STORE_NAME]._cleanup;T&&(T(),o((0,u._storeNetworkInfoCleanup)(void 0)))}return p}}})},1278,[3,956,443,1279,1290,882,1289,1291]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),s=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),c=t(r(d[7])),v=r(d[8]),_=(function(t){function c(){return(0,n.default)(this,c),(0,o.default)(this,(0,s.default)(c).apply(this,arguments))}return(0,l.default)(c,t),(0,u.default)(c,[{key:"start",value:function(){var t=this;this._subscription=f.default.addEventListener(function(n){t.emit(v.ONLINE_STATE_CHANGED_EVENT,c._convertNetInfoState(n))})}},{key:"stop",value:function(){this._subscription&&(this._subscription(),this._subscription=void 0)}}],[{key:"_convertNetInfoState",value:function(t){return{isOnline:t.isInternetReachable,details:t.details,networkType:t.type}}},{key:"isSupported",value:function(){return Boolean(f.default)}}]),c})(c.default);e.default=_},1279,[3,4,5,6,9,10,1280,996,1289]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0});var o={fetch:!0,addEventListener:!0,useNetInfo:!0,removeEventListener:!0,getConnectionInfo:!0,isConnectionExpensive:!0,isConnected:!0};e.fetch=C,e.addEventListener=_,e.useNetInfo=N,e.removeEventListener=O,e.getConnectionInfo=h,e.isConnectionExpensive=y,e.default=e.isConnected=void 0;var u=n(r(d[2])),f=r(d[3]),c=n(r(d[4])),l=n(r(d[5])),s=t(r(d[6]));Object.keys(s).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return s[t]}}))});var v=n(r(d[7])),E=t(r(d[8]));Object.keys(E).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return E[t]}}))}),v.default.setup(),l.default.setup();var p=new Map;function C(){return v.default.latest()}function _(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if('string'==typeof t)return c.default.warnOnce(),t===s.CHANGE_EVENT_NAME&&n?(l.default.add(n),{remove:function(){l.default.remove(n)}}):{remove:function(){}};var o=t;return v.default.add(o),function(){v.default.remove(o)}}function N(){var t=(0,f.useState)({type:E.NetInfoStateType.unknown,isConnected:!1,isInternetReachable:!1,details:null}),n=(0,u.default)(t,2),o=n[0],c=n[1];return(0,f.useEffect)(function(){return _(c)},[]),o}function O(t,n){c.default.warnOnce(),t===s.CHANGE_EVENT_NAME&&l.default.remove(n)}function h(){return c.default.warnOnce(),l.default.latest()}function y(){return c.default.warnOnce(),v.default.latest().then(c.default.isConnectionExpensive)}var b={addEventListener:function(t,n){if(t!==s.CHANGE_EVENT_NAME)return{remove:function(){}};var o=function(t){n(c.default.isConnected(t))};return p.set(n,o),v.default.add(o),{remove:function(){v.default.remove(o)}}},removeEventListener:function(t,n){var o=p.get(n);o&&v.default.remove(o),p.delete(n)},fetch:function(){return v.default.latest().then(c.default.isConnected)}};e.isConnected=b;var w={fetch:C,addEventListener:_,useNetInfo:N,removeEventListener:O,getConnectionInfo:h,isConnectionExpensive:y,isConnected:b};e.default=w},1280,[2,3,25,59,1281,1283,1288,1284,1282]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.convertState=u,e.isConnectionExpensive=c,e.isConnected=l,e.warnOnce=f,e.default=void 0;var t=r(d[1]),o=n(r(d[2]));function u(n){var t='unknown';return'cellular'===n.type&&(t=n.details.cellularGeneration||'unknown'),{type:n.type===o.NetInfoStateType.vpn||n.type===o.NetInfoStateType.other?'unknown':n.type,effectiveType:t}}function c(n){if('android'===t.Platform.OS)return n.type!==o.NetInfoStateType.none&&n.type!==o.NetInfoStateType.unknown&&n.details.isConnectionExpensive;throw new Error('Currently not supported on iOS')}function l(n){return n.isConnected}var p=!1;function f(){p||(console.warn('Warning: RNCNetInfo - You are using the deprecated API. It will still work, but you must upgrade to the new API to receive the new features. The old API will be removed in the future'),p=!0)}var s={convertState:u,isConnectionExpensive:c,isConnected:l,warnOnce:f};e.default=s},1281,[2,15,1282]);
__d(function(g,r,i,a,m,e,d){var n,t;Object.defineProperty(e,"__esModule",{value:!0}),e.NetInfoCellularGeneration=e.NetInfoStateType=void 0,e.NetInfoStateType=n,(function(n){n.unknown="unknown",n.none="none",n.cellular="cellular",n.wifi="wifi",n.bluetooth="bluetooth",n.ethernet="ethernet",n.wimax="wimax",n.vpn="vpn",n.other="other"})(n||(e.NetInfoStateType=n={})),e.NetInfoCellularGeneration=t,(function(n){n["2g"]="2g",n["3g"]="3g",n["4g"]="4g"})(t||(e.NetInfoCellularGeneration=t={}))},1282,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setup=c,e.tearDown=v,e.latest=s,e.add=_,e.remove=h,e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=new Set,f=null;function l(t){var n=u.default.convertState(t);f=n,o.forEach(function(t){return t(n)})}function c(){n.default.add(l)}function v(){}function s(){return f?Promise.resolve(f):n.default.latest().then(function(t){return f=u.default.convertState(t)})}function _(t){o.add(t),f?t(f):s().then(t)}function h(t){o.delete(t)}var p={setup:c,tearDown:v,latest:s,add:_,remove:h};e.default=p},1283,[3,1284,1281]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setup=w,e.tearDown=_,e.latest=b,e.add=D,e.remove=E,e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l='netInfo.networkStatusDidChange',c=!1,v=null,s=null,h=new Set,p=null;function S(){return f.default.currentState().then(function(t){o.default.update(t);var n=f.default.convertState(t);return p=n,n})}function w(){c||(v=u.default.eventEmitter.addListener(l,function(t){o.default.update(t);var n=f.default.convertState(t);p=n,h.forEach(function(t){return t(n)})}),S(),s=o.default.addSubscription(function(t){if(p){var u=(0,n.default)({},p,{isInternetReachable:t});p=u,h.forEach(function(t){return t(u)})}}),c=!0)}function _(){c&&(v&&v.remove(),h.clear(),o.default.clear(),s&&s(),c=!1)}function b(){return p?Promise.resolve(p):S()}function D(t){h.add(t),p?t(p):b().then(t)}function E(t){h.delete(t)}var I={setup:w,tearDown:_,latest:b,add:D,remove:E};e.default=I},1284,[3,53,1285,1286,1287]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=r(d[2]),u=o.NativeModules.RNCNetInfo;if(!u)throw new Error("@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps:\n\n\u2022 Run `react-native link @react-native-community/netinfo` in the project root.\n\u2022 Rebuild and re-run the app.\n\u2022 If you are using CocoaPods on iOS, run `pod install` in the `ios` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.\n\u2022 Check that the library was linked correctly when you used the link command by running through the manual installation instructions in the README.\n* If you are getting this error while unit testing you need to mock the native module. Follow the guide in the README.\n\nIf none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo");var s=null,h=(0,n.default)({},u,{get eventEmitter(){return s||(s=new o.NativeEventEmitter(u)),s}});e.default=h},1285,[3,53,15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.clear=h,e.update=b,e.currentState=v,e.addSubscription=S,e.default=void 0;var n='https://clients3.google.com/generate_204',t=6e4,l=5e3,u=new Set,c=null,o=null,f=null;function s(n){c!==n&&(c=n,u.forEach(function(n){n(c)}))}function p(){var u=!1;return{promise:fetch(n).then(function(n){u||(s(204===n.status),f=setTimeout(p,c?t:l))}).catch(function(){s(!1),f=setTimeout(p,l)}),cancel:function(){u=!0}}}function h(){null!==o&&(o.cancel(),o=null),null!==f&&(clearTimeout(f),f=null),u.clear()}function b(n){var t;'boolean'==typeof n.isInternetReachable?s(n.isInternetReachable):(t=n.isConnected,null!==o&&(o.cancel(),o=null),null!==f&&(clearTimeout(f),f=null),t?(c||s(null),o=p()):s(!1))}function v(){return c}function S(n){return u.add(n),function(){u.delete(n)}}var _={update:b,currentState:v,clear:h,addSubscription:S};e.default=_},1286,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.convertState=o,e.currentState=f,e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),c=t(r(d[3]));function o(t){return'boolean'==typeof t.isInternetReachable?t:(0,n.default)({},t,{isInternetReachable:u.default.currentState()})}function f(){return c.default.getCurrentState()}var l={convertState:o,currentState:f};e.default=l},1287,[3,53,1286,1285]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CHANGE_EVENT_NAME=void 0;e.CHANGE_EVENT_NAME='connectionChange'},1288,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ONLINE_STATE_CHANGED_EVENT=void 0;e.ONLINE_STATE_CHANGED_EVENT='network-info-online-status-change'},1289,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setNetworkInfo=function(t){var o=t.isOnline,_=t.networkType,u=t.details;return{type:n.SET_NETWORK_INFO,isOnline:o,networkType:_,details:u}},e._storeNetworkInfoCleanup=function(t){return{type:n._STORE_NETWORK_INFO_CLEANUP,cleanup:t}};var n=r(d[0])},1290,[1236]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/net-info');e.default=t},1291,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),c=r(d[3]),s=r(d[4]),o=r(d[5]),f=r(d[6]),I=r(d[7]),p=r(d[8]),P=r(d[9]),u=r(d[10]),A=r(d[11]),T=r(d[12]),_=r(d[13]);function N(t,n,c,s){var o='true'===s;(0,t.dispatch)((0,u.participantUpdated)({conference:n,id:c,e2eeEnabled:o}))}function l(t,n,c){var s=t.getState,o=t.dispatch,f=n(c),I=s()['features/base/settings'];return o((0,u.localParticipantJoined)({avatarID:I.avatarID,avatarURL:I.avatarURL,email:I.email,name:I.displayName})),f}function E(t,n,c){var s=t.dispatch,o=n(c);return s((0,u.localParticipantLeft)()),o}function L(t,n){var s=t.getState,o=t.dispatch,f=s(),I=f['features/base/config'].startAudioMuted;if(!n.participant.local&&(!I||(0,T.getParticipantCount)(f)<I))if(n.type===P.PARTICIPANT_JOINED){var u=n.participant.presence;u!==c.INVITED&&u!==c.CALLING&&o((0,p.playSound)(A.PARTICIPANT_JOINED_SOUND_ID))}else n.type===P.PARTICIPANT_LEFT&&o((0,p.playSound)(A.PARTICIPANT_LEFT_SOUND_ID))}function C(t,n,c){var s=t.dispatch,o=t.getState,f=c.participant,I=f.avatarURL,p=f.e2eeEnabled,P=f.email,A=f.id,_=f.local,N=f.name,l=f.raisedHand;if(void 0!==l&&_){var E=o()['features/base/conference'].conference;E&&E.setLocalParticipantProperty('raisedHand',l)}if(void 0!==p&&_){var L=o()['features/base/conference'].conference;L&&L.setLocalParticipantProperty('e2eeEnabled',p)}var C=n(c);if(!o()['features/base/config'].disableThirdPartyRequests&&(I||P||A||N)){var v=!A&&_?(0,T.getLocalParticipant)(o()).id:A,D=(0,T.getParticipantById)(o(),v);(0,T.getFirstLoadableAvatarUrl)(D).then(function(t){s((0,u.setLoadableAvatarUrl)(v,t))})}if('object'==typeof APP){var R=_?APP.conference.getMyUserId():A;APP.UI.refreshAvatarDisplay(R)}return C}function v(t,c,s,o){var f=t.dispatch,I=t.getState,p='true'===o;f((0,u.participantUpdated)({conference:c,id:s,raisedHand:p})),p&&f((0,n.showNotification)({titleArguments:{name:(0,T.getParticipantDisplayName)(I,s)},titleKey:'notify.raisedHand'},n.NOTIFICATION_TIMEOUT))}function D(t){var n=t.dispatch;n((0,p.registerSound)(A.PARTICIPANT_JOINED_SOUND_ID,_.PARTICIPANT_JOINED_FILE)),n((0,p.registerSound)(A.PARTICIPANT_LEFT_SOUND_ID,_.PARTICIPANT_LEFT_FILE))}function R(t){var n=t.dispatch;n((0,p.unregisterSound)(A.PARTICIPANT_JOINED_SOUND_ID)),n((0,p.unregisterSound)(A.PARTICIPANT_LEFT_SOUND_ID))}I.MiddlewareRegistry.register(function(n){return function(c){return function(f){switch(f.type){case s.APP_WILL_MOUNT:return D(n),l(n,c,f);case s.APP_WILL_UNMOUNT:return R(n),E(n,c,f);case o.CONFERENCE_WILL_JOIN:n.dispatch((0,u.localParticipantIdChanged)(f.conference.myUserId()));break;case P.DOMINANT_SPEAKER_CHANGED:var I=f.participant,p=I.conference,A=I.id,_=(0,T.getLocalParticipant)(n.getState());_&&n.dispatch((0,u.participantUpdated)({conference:p,id:A,local:_.id===A,raisedHand:!1}));break;case P.GRANT_MODERATOR:n.getState()['features/base/conference'].conference.grantOwner(f.id);break;case P.KICK_PARTICIPANT:n.getState()['features/base/conference'].conference.kickParticipant(f.id);break;case P.MUTE_REMOTE_PARTICIPANT:n.getState()['features/base/conference'].conference.muteParticipant(f.id);break;case P.PARTICIPANT_DISPLAY_NAME_CHANGED:if('undefined'!=typeof APP){var N=(0,T.getLocalParticipant)(n.getState());N&&N.id===f.id&&APP.UI.emitEvent(t.default.NICKNAME_CHANGED,f.name)}break;case P.PARTICIPANT_JOINED:return L(n,f),C(n,c,f);case P.PARTICIPANT_LEFT:L(n,f);break;case P.PARTICIPANT_UPDATED:return C(n,c,f)}return c(f)}}}),I.StateListenerRegistry.register(function(t){return(0,o.getCurrentConference)(t)},function(t,n){var c=n.dispatch,s=(0,n.getState)()['features/base/participants'],o=Array.isArray(s),f=0;for(s=o?s:s["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var I;if(o){if(f>=s.length)break;I=s[f++]}else{if((f=s.next()).done)break;I=f.value}var p=I;!p.local&&(!t||p.conference!==t)&&c((0,u.participantLeft)(p.id,p.conference))}}),I.StateListenerRegistry.register(function(t){return t['features/base/conference']},function(t,n){var c,s=t.leaving,f=n.dispatch,I=(0,n.getState)(),p=(0,T.getLocalParticipant)(I);p&&(c=p.id)!==A.LOCAL_PARTICIPANT_DEFAULT_ID&&((0
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.PARTICIPANT_LEFT_FILE=e.PARTICIPANT_JOINED_FILE=void 0;e.PARTICIPANT_JOINED_FILE='joined.wav';e.PARTICIPANT_LEFT_FILE='left.wav'},1293,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=r(d[4]),c=n.default.throttle(function(t){return o.default.persistState(t)},2e3);'function'==typeof window.addEventListener&&window.addEventListener('unload',function(){c.flush()}),u.default.register(function(t){return function(n){return function(u){var o=(0,f.toState)(t),l=n(u),s=(0,f.toState)(t);return o===s||c(s),l}}})},1294,[3,445,481,482,444]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),c=r(d[2]);t.MiddlewareRegistry.register(function(t){var s=t.dispatch;return function(t){return function(u){var o=t(u);switch(u.type){case n.CLIENT_RESIZED:var f=u.clientWidth,h=u.clientHeight;s((0,c.setAspectRatio)(f,h)),s((0,c.setReducedUI)(f,h))}return o}}})},1295,[443,1083,1082]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),s=t(r(d[2])),o=r(d[3]),l=r(d[4]),c=r(d[5]),u=r(d[6]),f=r(d[7]),p=r(d[8]),h=r(d[9]),y=r(d[10]),b=r(d[11]);function v(t){var n=(0,t.getState)()['features/base/settings'].disableCallIntegration;'boolean'==typeof n&&(0,b.handleCallIntegrationChange)(n)}function C(t){switch(t){case'displayName':return'name'}return t}function I(t){var n=t.settings.disableCallIntegration;'boolean'==typeof n&&(0,b.handleCallIntegrationChange)(n)}function L(t){var n=t.settings.disableCrashReporting;'boolean'==typeof n&&(0,b.handleCrashReportingChange)(n)}function P(t,n){var s=t.dispatch,o=n.settings.startAudioOnly;'boolean'==typeof o&&s((0,l.setAudioOnly)(o,!0))}function S(t,s){var o=t.dispatch,l=t.getState,c=s.settings,f=(0,u.getLocalParticipant)(l()),p=(0,n.default)({},f);for(var h in c)c.hasOwnProperty(h)&&(p[C(h)]=c[h]);o((0,u.participantUpdated)(p))}function U(t){var o=t.dispatch,l=t.getState,c=(0,p.parseURLParams)(l()['features/base/connection'].locationURL),f=c['userInfo.email'],h=c['userInfo.displayName'];if(f||h){var b=(0,u.getLocalParticipant)(l());if(b){var v=s.default.escape(h),C=s.default.escape(f);o((0,u.participantUpdated)((0,n.default)({},b,{email:C,name:v}))),o((0,y.updateSettings)({displayName:v,email:C}))}}}f.MiddlewareRegistry.register(function(t){return function(n){return function(s){var l=n(s);switch(s.type){case o.APP_WILL_MOUNT:v(t);break;case h.SETTINGS_UPDATED:I(s),P(t,s),S(t,s),L(s);break;case c.SET_LOCATION_URL:U(t)}return l}}})},1296,[3,53,445,956,1142,1117,704,443,506,912,911,914]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u=n(r(d[3]));function s(n,t){var o=(0,n.getState)()['features/base/sounds'].get(t);o?o.audioElement?o.audioElement.play():u.default.warn("PLAY_SOUND: sound not loaded yet for id: "+t):u.default.warn("PLAY_SOUND: no sound found for id: "+t)}function f(n,t){var o=(0,n.getState)()['features/base/sounds'].get(t);if(o){var s=o.audioElement;s?s.stop():u.default.warn("STOP_SOUND: sound not loaded yet for id: "+t)}else u.default.warn("STOP_SOUND: no sound found for id: "+t)}t.MiddlewareRegistry.register(function(n){return function(t){return function(u){switch(u.type){case o.PLAY_SOUND:s(n,u.soundId);break;case o.STOP_SOUND:f(n,u.soundId)}return t(u)}}})},1297,[3,443,964,1298]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/sounds');e.default=t},1298,[495]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),E=r(d[2]),N=r(d[3]),C=r(d[4]),s=n(r(d[5]));function c(n,t){var N=t.dispatch;n.on(E.JitsiConferenceEvents.CONNECTION_ESTABLISHED,o.bind(null,E.JitsiConferenceEvents.CONNECTION_ESTABLISHED,N)),n.on(E.JitsiConferenceEvents.CONNECTION_RESTORED,o.bind(null,E.JitsiConferenceEvents.CONNECTION_RESTORED,N)),n.on(E.JitsiConferenceEvents.CONNECTION_INTERRUPTED,o.bind(null,E.JitsiConferenceEvents.CONNECTION_INTERRUPTED,N))}function o(n,t){switch(n){case E.JitsiConferenceEvents.CONNECTION_ESTABLISHED:case E.JitsiConferenceEvents.CONNECTION_INTERRUPTED:case E.JitsiConferenceEvents.CONNECTION_RESTORED:t((0,C.setConnectionState)(n));break;default:s.default.error("onConnectionEvent - unsupported event type: "+n)}}N.MiddlewareRegistry.register(function(n){return function(E){return function(N){switch(N.type){case t.CONFERENCE_WILL_JOIN:c(N.conference,n)}return E(N)}}})},1299,[3,1101,879,443,1300,1302]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setConnectionState=function(n){return{type:t.SET_CONNECTION_STATE,connectionState:n}};var t=r(d[0])},1300,[1301]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_CONNECTION_STATE=void 0;e.SET_CONNECTION_STATE='SET_CONNECTION_STATE'},1301,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/testing');e.default=t},1302,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),c=r(d[2]),o=r(d[3]),n=r(d[4]),s=r(d[5]),u=r(d[6]),T=r(d[7]),E=r(d[8]),A=r(d[9]);function f(t,c){var o=t.getState,n=t.dispatch,u=(0,A.getTrackByJitsiTrack)(o()['features/base/tracks'],c.track.jitsiTrack);if(u&&u.local){var T=u.jitsiTrack;if(u.mediaType===s.MEDIA_TYPE.AUDIO&&u.isReceivingData&&k(t,c.track),u.mediaType===s.MEDIA_TYPE.VIDEO){var f=u.noDataFromSourceNotificationInfo,D=void 0===f?{}:f;if(u.isReceivingData)D.timeout&&(clearTimeout(D.timeout),n((0,E.trackNoDataFromSourceNotificationInfoChanged)(T,void 0))),k(t,c.track);else{if(D.timeout)return;var P=setTimeout(function(){return n((0,E.showNoDataFromSourceVideoError)(T))},5e3);n((0,E.trackNoDataFromSourceNotificationInfoChanged)(T,{timeout:P}))}}}}function D(t,c){var o=t.getState,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return(0,A.getLocalTrack)(o()['features/base/tracks'],c,n)}function k(t,o){var n=t.getState,s=t.dispatch,u=(0,A.getTrackByJitsiTrack)(n()['features/base/tracks'],o.jitsiTrack)||{},T=u.jitsiTrack,f=u.noDataFromSourceNotificationInfo,D=void 0===f?{}:f;D&&D.uid&&(s((0,c.hideNotification)(D.uid)),s((0,E.trackNoDataFromSourceNotificationInfoChanged)(T,void 0)))}function P(t,c,n){var u=c.ensureTrack,T=c.authority,f=c.muted,k=D(t,n,!0);if(k){var P=k.jitsiTrack,I=T===s.VIDEO_MUTISM_AUTHORITY.AUDIO_ONLY;P&&('desktop'!==P.videoType||I)&&(0,A.setTrackMuted)(P,f)}else f||!u||'undefined'!=typeof APP&&!(0,o.isPrejoinPageVisible)(t.getState())||t.dispatch((0,E.createLocalTracksA)({devices:[n]}))}u.MiddlewareRegistry.register(function(c){return function(u){return function(E){switch(E.type){case T.TRACK_ADDED:E.track.local&&c.dispatch((0,n.getAvailableDevices)());break;case T.TRACK_NO_DATA_FROM_SOURCE:var I=u(E);return f(c,E),I;case T.TRACK_REMOVED:k(c,E.track);break;case s.SET_AUDIO_MUTED:if(!E.muted&&(0,A.isUserInteractionRequiredForUnmute)(c.getState()))return;P(c,E,s.MEDIA_TYPE.AUDIO);break;case s.SET_CAMERA_FACING_MODE:var _,M=D(c,s.MEDIA_TYPE.VIDEO);M&&(_=M.jitsiTrack)&&_.getCameraFacingMode()!==E.cameraFacingMode&&c.dispatch((0,s.toggleCameraFacingMode)());break;case s.SET_VIDEO_MUTED:if(!E.muted&&(0,A.isUserInteractionRequiredForUnmute)(c.getState()))return;P(c,E,E.mediaType);break;case s.TOGGLE_CAMERA_FACING_MODE:var v,S=D(c,s.MEDIA_TYPE.VIDEO);if(S&&(v=S.jitsiTrack)){v._switchCamera();var R=v.getCameraFacingMode()===s.CAMERA_FACING_MODE.USER;c.dispatch({type:T.TRACK_UPDATED,track:{jitsiTrack:v,mirror:R}})}break;case T.TOGGLE_SCREENSHARING:'object'==typeof APP&&APP.UI.emitEvent(t.default.TOGGLE_SCREENSHARING);break;case T.TRACK_UPDATED:if('undefined'!=typeof APP){var p=u(E);if((0,o.isPrejoinPageVisible)(c.getState()))return p;var C=E.track.jitsiTrack,O=C.isMuted(),U=C.getParticipantId();return C.type!==s.MEDIA_TYPE.AUDIO?(C.type===s.MEDIA_TYPE.PRESENTER&&APP.conference.mutePresenter(O),C.isLocal()&&'desktop'!==C.videoType?APP.conference.setVideoMuteStatus(O):APP.UI.setVideoMuted(U,O),APP.UI.onPeerVideoTypeChanged(U,C.videoType)):C.isLocal()?APP.conference.setAudioMuteStatus(O):APP.UI.setAudioMuted(U,O),p}}return u(E)}}})},1303,[3,1144,706,1304,1305,887,443,940,904,941]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isJoinByPhoneButtonVisible=function(t){return Boolean((0,n.getDialOutUrl)(t)&&(0,n.getDialOutStatusUrl)(t))},e.isDeviceStatusVisible=function(t){return!((0,u.isAudioMuted)(t)&&(0,u.isVideoMutedByUser)(t)||t['features/base/config'].startSilent)},e.isDisplayNameRequired=function(t){return t['features/prejoin'].isDisplayNameRequired||t['features/base/config'].requireDisplayName},e.isPrejoinSkipped=function(t){return t['features/prejoin'].userSelectedSkipPrejoin},e.getDeviceStatusText=function(t){var n;return null==(n=t['features/prejoin'])?void 0:n.deviceStatusText},e.getDeviceStatusType=function(t){var n;return null==(n=t['features/prejoin'])?void 0:n.deviceStatusType},e.getDialOutConferenceUrl=function(n){return(0,t.getRoomName)(n)+"@"+n['features/base/config'].hosts.muc},e.getDialOutCountry=o,e.getDialOutNumber=s,e.getDialOutStatus=function(t){return t['features/prejoin'].dialOutStatus},e.getFullDialOutNumber=function(t){var n=s(t);return"+"+o(t).dialCode+n},e.getRawError=function(t){var n;return null==(n=t['features/prejoin'])?void 0:n.rawError},e.isJoinByPhoneDialogVisible=function(t){var n;return null==(n=t['features/prejoin'])?void 0:n.showJoinByPhoneDialog},e.isPrejoinPageEnabled=l,e.isPrejoinPageVisible=function(t){var n;return l(t)&&(null==(n=t['features/prejoin'])?void 0:n.showPrejoin)};var t=r(d[0]),n=r(d[1]),u=r(d[2]);function o(t){return t['features/prejoin'].dialOutCountry}function s(t){return t['features/prejoin'].dialOutNumber}function l(t){return'ReactNative'!==navigator.product&&t['features/base/config'].prejoinPageEnabled&&!t['features/base/settings'].userSelectedSkipPrejoin}},1304,[1101,924,887]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.addPendingDeviceRequest=s,e.configureInitialDevices=function(){return function(t,u){var n=(0,v.getDevicesFromURL)(u());return(n?t(l()).then(function(){var o=u();if((0,v.areDeviceLabelsInitialized)(o)){var l={};Object.keys(n).forEach(function(t){var u=n[t],c=(0,v.getDeviceIdByLabel)(o,u,t);if(c){var s=D[t];l[s.currentDeviceId]=c,l[s.userSelectedDeviceId]=c,l[s.userSelectedDeviceLabel]=u}}),t((0,c.updateSettings)(l))}else Object.keys(n).forEach(function(u){t(s({type:'devices',name:'setDevice',device:{kind:u.toLowerCase(),label:n[u]},responseCallback:function(){}}))})}):Promise.resolve()).then(function(){var n=(0,c.getUserSelectedOutputDeviceId)(u());return(0,v.setAudioOutputDeviceId)(n,t).catch(function(t){return o.default.warn("Failed to set audio output device.\n Default audio output device will be used instead "+t)})})}},e.getAvailableDevices=l,e.notifyCameraError=function(t){return{type:n.NOTIFY_CAMERA_ERROR,error:t}},e.notifyMicError=function(t){return{type:n.NOTIFY_MIC_ERROR,error:t}},e.removePendingDeviceRequests=function(){return{type:n.REMOVE_PENDING_DEVICE_REQUESTS}},e.setAudioInputDevice=I,e.setAudioInputDeviceAndUpdateSettings=function(t){return function(u,n){var o=(0,v.getDeviceLabelById)(n(),t,'audioInput');u(I(t)),u((0,c.updateSettings)({userSelectedMicDeviceId:t,userSelectedMicDeviceLabel:o}))}},e.setAudioOutputDevice=function(t){return function(u,c){var n=(0,v.getDeviceLabelById)(c(),t,'audioOutput');return(0,v.setAudioOutputDeviceId)(t,u,!0,n)}},e.setVideoInputDevice=f,e.setVideoInputDeviceAndUpdateSettings=function(t){return function(u,n){var o=(0,v.getDeviceLabelById)(n(),t,'videoInput');u(f(t)),u((0,c.updateSettings)({userSelectedCameraDeviceId:t,userSelectedCameraDeviceLabel:o}))}},e.updateDeviceList=p,e.checkAndNotifyForNewDevice=function(t,u){return{type:n.CHECK_AND_NOTIFY_FOR_NEW_DEVICE,newDevices:t,oldDevices:u}};var u=t(r(d[1])),c=r(d[2]),n=r(d[3]),v=r(d[4]),o=t(r(d[5])),D={audioInput:{currentDeviceId:'micDeviceId',userSelectedDeviceId:'userSelectedMicDeviceId',userSelectedDeviceLabel:'userSelectedMicDeviceLabel'},audioOutput:{currentDeviceId:'audioOutputDeviceId',userSelectedDeviceId:'userSelectedAudioOutputDeviceId',userSelectedDeviceLabel:'userSelectedAudioOutputDeviceLabel'},videoInput:{currentDeviceId:'audioOutputDeviceId',userSelectedDeviceId:'userSelectedCameraDeviceId',userSelectedDeviceLabel:'userSelectedCameraDeviceLabel'}};function s(t){return{type:n.ADD_PENDING_DEVICE_REQUEST,request:t}}function l(){return function(t){return new Promise(function(c){var n=u.default.mediaDevices;n.isDeviceListAvailable()&&n.isDeviceChangeAvailable()?n.enumerateDevices(function(u){t(p(u)),c(u)}):c([])})}}function I(t){return{type:n.SET_AUDIO_INPUT_DEVICE,deviceId:t}}function f(t){return{type:n.SET_VIDEO_INPUT_DEVICE,deviceId:t}}function p(t){return{type:n.UPDATE_DEVICE_LIST,devices:t}}},1305,[3,879,910,1306,1307,1308]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CHECK_AND_NOTIFY_FOR_NEW_DEVICE=e.REMOVE_PENDING_DEVICE_REQUESTS=e.ADD_PENDING_DEVICE_REQUEST=e.UPDATE_DEVICE_LIST=e.SET_VIDEO_INPUT_DEVICE=e.SET_AUDIO_INPUT_DEVICE=e.NOTIFY_MIC_ERROR=e.NOTIFY_CAMERA_ERROR=void 0;e.NOTIFY_CAMERA_ERROR='NOTIFY_CAMERA_ERROR';e.NOTIFY_MIC_ERROR='NOTIFY_MIC_ERROR';e.SET_AUDIO_INPUT_DEVICE='SET_AUDIO_INPUT_DEVICE';e.SET_VIDEO_INPUT_DEVICE='SET_VIDEO_INPUT_DEVICE';e.UPDATE_DEVICE_LIST='UPDATE_DEVICE_LIST';e.ADD_PENDING_DEVICE_REQUEST='ADD_PENDING_DEVICE_REQUEST';e.REMOVE_PENDING_DEVICE_REQUESTS='REMOVE_PENDING_DEVICE_REQUESTS';e.CHECK_AND_NOTIFY_FOR_NEW_DEVICE='CHECK_AND_NOTIFY_FOR_NEW_DEVICE'},1306,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.areDeviceLabelsInitialized=function(t){if(APP.conference._localTracksInitialized)return!0;for(var u=['audioInput','audioOutput','videoInput'],n=0;n<u.length;n++){var c=u[n];if((t['features/base/devices'].availableDevices[c]||[]).find(function(t){return Boolean(t.label)}))return!0}return!1},e.getAudioOutputDeviceId=function(){return u.default.mediaDevices.getAudioOutputDevice()},e.getDefaultDeviceId=function(t,u){var n=o[u]||u,c=(t['features/base/devices'].availableDevices[n]||[]).find(function(t){return'default'===t.deviceId}),v=(t['features/base/devices'].availableDevices[n]||[]).find(function(t){return'default'!==t.deviceId&&t.groupId===c.groupId});if(v)return v.deviceId},e.getDeviceIdByLabel=function(t,u,n){var c=o[n]||n,v=(t['features/base/devices'].availableDevices[c]||[]).find(function(t){return t.label===u});if(v)return v.deviceId},e.getDeviceLabelById=function(t,u,n){var c=o[n]||n,v=(t['features/base/devices'].availableDevices[c]||[]).find(function(t){return t.deviceId===u});if(v)return v.label},e.getDevicesFromURL=function(t){var u=(0,c.parseURLParams)(t['features/base/connection'].locationURL),n=u['devices.audioOutput'],v=u['devices.videoInput'],o=u['devices.audioInput'];if(!n&&!v&&!o)return;var l={};return n&&(l.audioOutput=n),v&&(l.videoInput=v),o&&(l.audioInput=o),l},e.groupDevicesByKind=function(t){return{audioInput:t.filter(function(t){return'audioinput'===t.kind}),audioOutput:t.filter(function(t){return'audiooutput'===t.kind}),videoInput:t.filter(function(t){return'videoinput'===t.kind})}},e.filterAudioDevices=function(t){return t.filter(function(t){return'audioinput'===t.kind})},e.formatDeviceLabel=function(t){var u=t,n=u.lastIndexOf('(');-1!==n&&(u=u.substr(0,n));return u},e.getAudioInputDeviceData=function(t){return t['features/base/devices'].availableDevices.audioInput.map(function(t){var u=t.deviceId,n=t.label;return{deviceId:u,label:n}})},e.getAudioOutputDeviceData=function(t){return t['features/base/devices'].availableDevices.audioOutput.map(function(t){var u=t.deviceId,n=t.label;return{deviceId:u,label:n}})},e.getVideoDeviceIds=function(t){return t['features/base/devices'].availableDevices.videoInput.map(function(t){var u=t.deviceId;return u})},e.hasAvailableDevices=function(t,u){if(void 0===t['features/base/devices'])return!0;return t['features/base/devices'].availableDevices[u].length>0},e.setAudioOutputDeviceId=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'default',c=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=arguments.length>3?arguments[3]:void 0;return v.default.debug("setAudioOutputDevice: "+String(l)+"["+t+"]"),u.default.mediaDevices.setAudioOutputDevice(t).then(function(){var u={audioOutputDeviceId:t,userSelectedAudioOutputDeviceId:void 0,userSelectedAudioOutputDeviceLabel:void 0};return o?(u.userSelectedAudioOutputDeviceId=t,u.userSelectedAudioOutputDeviceLabel=l):(delete u.userSelectedAudioOutputDeviceId,delete u.userSelectedAudioOutputDeviceLabel),c((0,n.updateSettings)(u))})};var u=t(r(d[1])),n=r(d[2]),c=r(d[3]),v=t(r(d[4])),o={audioinput:'audioInput',audiooutput:'audioOutput',videoinput:'videoInput'}},1307,[3,879,910,506,1308]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/devices');e.default=t},1308,[495]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=r(d[2]),u=null;function s(n,t){t.isTrusted&&(n({type:o.USER_INTERACTION_RECEIVED}),c())}function w(n){var t=n.dispatch;c(),u=s.bind(null,t),window.addEventListener('mousedown',u),window.addEventListener('keydown',u)}function c(){window.removeEventListener('mousedown',u),window.removeEventListener('keydown',u),u=null}t.MiddlewareRegistry.register(function(t){return function(o){return function(u){switch(u.type){case n.APP_WILL_MOUNT:w(t);break;case n.APP_WILL_UNMOUNT:c()}return o(u)}}})},1309,[956,443,1310]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.USER_INTERACTION_RECEIVED=void 0;e.USER_INTERACTION_RECEIVED='USER_INTERACTION_RECEIVED'},1310,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),c=r(d[4]),s=r(d[5]),o=r(d[6]);u.MiddlewareRegistry.register(function(u){return function(p){return function(f){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=f.type,t.next=t.t0===c.SET_BILLING_ID?3:t.t0===n.CONFERENCE_JOINED?5:7;break;case 3:return(0,o.setBillingId)(f.value),t.abrupt("break",7);case 5:return u.dispatch((0,s.countEndpoint)()),t.abrupt("break",7);case 7:return t.abrupt("return",p(f));case 8:case"end":return t.stop()}},null,this)}}})},1311,[3,270,1121,443,1312,1313,1122]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_BILLING_ID=void 0;e.SET_BILLING_ID='SET_BILLING_ID'},1312,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.countEndpoint=function(){return function(t,l){var s,c=l(),f=c['features/base/config'].billingCounterUrl,b=c['features/base/jwt'].jwt,v=(0,u.extractVpaasTenantFromPath)(c['features/base/connection'].locationURL.pathname),_=Boolean(f&&b&&v);if(_){var p=(0,u.getBillingId)();p||(p=n.default.v4(),t((s=p,{type:o.SET_BILLING_ID,value:s}))),(0,u.sendCountRequest)({baseUrl:f,billingId:p,jwt:b,tenant:v})}}};var n=t(r(d[1])),o=r(d[2]),u=r(d[3])},1313,[3,1154,1312,1122]);
__d(function(g,r,i,a,m,e,d){},1314,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]),n=r(d[2]),c=r(d[3]),o=r(d[4]),p=r(d[5]),f=r(d[6]),E=r(d[7]),u=r(d[8]),_=r(d[9]),M=r(d[10]),S=r(d[11]),v=r(d[12]),P=r(d[13]),l=r(d[14]),A=2e4;function N(t,s){'object'==typeof interfaceConfig&&interfaceConfig.filmStripOnly||'undefined'!=typeof APP&&!(0,_.isButtonEnabled)('chat')||s.getState()['features/base/config'].iAmRecorder||(t.on(c.JitsiConferenceEvents.MESSAGE_RECEIVED,function(t,n,c,o){y(s,{id:t,message:n,nick:o,privateMessage:!1,timestamp:c})}),t.on(c.JitsiConferenceEvents.PRIVATE_MESSAGE_RECEIVED,function(t,n,c){y(s,{id:t,message:n,privateMessage:!0,timestamp:c,nick:void 0})}),t.on(c.JitsiConferenceEvents.CONFERENCE_ERROR,function(t,n){t===c.JitsiConferenceErrors.CHAT_ERROR&&R(s,n)}))}function R(t,s){(0,t.dispatch)((0,S.addMessage)({hasRead:!0,messageType:P.MESSAGE_TYPE_ERROR,message:s,privateMessage:!1,timestamp:Date.now()}))}function y(t,s){var n=t.dispatch,c=t.getState,o=s.id,f=s.message,_=s.nick,M=s.privateMessage,v=s.timestamp,l=c(),A=l['features/chat'].isOpen;A||n((0,E.playSound)(P.INCOMING_MSG_SOUND_ID));var N=(0,p.getParticipantById)(l,o)||{},R=(0,p.getLocalParticipant)(c),y=N.name||_||(0,p.getParticipantDisplayName)(l,o),C=N.local||A,I=(v?new Date(v):new Date).getTime();n((0,S.addMessage)({displayName:y,hasRead:C,id:o,messageType:N.local?P.MESSAGE_TYPE_LOCAL:P.MESSAGE_TYPE_REMOTE,message:f,privateMessage:M,recipient:(0,p.getParticipantDisplayName)(l,R.id),timestamp:I})),'undefined'!=typeof APP&&(APP.API.notifyReceivedChatMessage({body:f,id:o,nick:y,ts:v}),n((0,u.showToolbox)(4e3)))}function C(){if('ReactNative'!==navigator.product){var t=document.getElementById('usermsg');t&&t.focus()}}function I(t,s,n){var c=t.dispatch,o=t.getState,f=(0,p.getLocalParticipant)(o),E=(0,p.getParticipantDisplayName)(o,f.id);c((0,S.addMessage)({displayName:E,hasRead:!0,id:f.id,messageType:P.MESSAGE_TYPE_LOCAL,message:n,privateMessage:!0,recipient:(0,p.getParticipantDisplayName)(o,s),timestamp:Date.now()}))}function O(t,s){if(!s.ignorePrivacy){var n=t['features/chat'],c=n.messages;if(!n.privateMessageRecipient&&c.length){var o='ReactNative'===navigator.product?c[0]:c[c.length-1];if(o.messageType!==P.MESSAGE_TYPE_LOCAL){if(o.privateMessage)return o.id;var p=Date.now(),f=c.filter(function(t){return t.messageType!==P.MESSAGE_TYPE_LOCAL&&t.privateMessage&&t.timestamp+A>p}),E='ReactNative'===navigator.product?f[0]:f[f.length-1];return E?E.id:void 0}}}}f.MiddlewareRegistry.register(function(c){return function(p){return function(f){var u=c.dispatch;switch(f.type){case t.APP_WILL_MOUNT:u((0,E.registerSound)(P.INCOMING_MSG_SOUND_ID,l.INCOMING_MSG_SOUND_FILE));break;case t.APP_WILL_UNMOUNT:u((0,E.unregisterSound)(P.INCOMING_MSG_SOUND_ID));break;case s.CONFERENCE_JOINED:N(f.conference,c);break;case M.SEND_MESSAGE:var _=c.getState(),S=_['features/base/conference'].conference;if(S){var A=O(_,f);if(A)u((0,n.openDialog)(v.ChatPrivacyDialog,{message:f.message,participantID:A}));else{var R=_['features/chat'].privateMessageRecipient;'undefined'!=typeof APP&&APP.API.notifySendingChatMessage(f.message,Boolean(R)),R?(S.sendPrivateTextMessage(R.id,f.message),I(c,R.id,f.message)):S.sendTextMessage(f.message)}}break;case M.SET_PRIVATE_MESSAGE_RECIPIENT:Boolean(f.participant)&&u((0,o.setActiveModalId)(P.CHAT_VIEW_MODAL_ID)),C()}return p(f)}}}),f.StateListenerRegistry.register(function(t){return(0,s.getCurrentConference)(t)},function(t,s,n){var c=s.dispatch,o=s.getState;t!==n&&(o()['features/chat'].isOpen&&c((0,S.toggleChat)()),c((0,S.clearMessages)()))}),f.StateListenerRegistry.register(function(t){return t['features/chat'].isOpen},function(t,s){var n=s.dispatch;'undefined'!=typeof APP&&t&&n((0,u.showToolbox)())})},1315,[956,1101,531,879,1192,704,443,962,1000,1316,1317,1318,1320,1323,1341]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isToolboxVisible=function(o){var s=(0,l.toState)(o),n=s['features/toolbox'],b=n.alwaysVisible,u=n.enabled,_=n.visible,f=s['features/base/participants'].length,c=(0,t.getFeatureFlag)(s,t.TOOLBOX_ALWAYS_VISIBLE,!1);return u&&(b||_||1===f||c)};var t=r(d[0]),l=r(d[1])},1316,[951,443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_CHAT=e.SET_PRIVATE_MESSAGE_RECIPIENT=e.SEND_MESSAGE=e.CLEAR_MESSAGES=e.ADD_MESSAGE=void 0;e.ADD_MESSAGE='ADD_MESSAGE';e.CLEAR_MESSAGES='CLEAR_MESSAGES';e.SEND_MESSAGE='SEND_MESSAGE';e.SET_PRIVATE_MESSAGE_RECIPIENT='SET_PRIVATE_MESSAGE_RECIPIENT';e.TOGGLE_CHAT='TOGGLE_CHAT'},1317,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t={toggleChat:!0};e.toggleChat=function(){return function(t){t({type:n.TOGGLE_CHAT})}};var n=r(d[0]),o=r(d[1]);Object.keys(o).forEach(function(n){"default"!==n&&"__esModule"!==n&&(Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return o[n]}}))})},1318,[1317,1319]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.addMessage=function(t){return(0,n.default)({type:s.ADD_MESSAGE},t)},e.clearMessages=function(){return{type:s.CLEAR_MESSAGES}},e.sendMessage=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return{type:s.SEND_MESSAGE,ignorePrivacy:n,message:t}},e.setPrivateMessageRecipient=function(t){return{participant:t,type:s.SET_PRIVATE_MESSAGE_RECIPIENT}};var n=t(r(d[1])),s=r(d[2])},1319,[3,53,1317]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={PrivateMessageButton:!0};Object.defineProperty(e,"PrivateMessageButton",{enumerable:!0,get:function(){return u.default}});var o=r(d[1]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}}))});var u=t(r(d[2]))},1320,[3,1321,1335]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Chat",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"ChatButton",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"ChatPrivacyDialog",{enumerable:!0,get:function(){return f.default}});var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3]))},1321,[3,1322,1338,1339]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),u=l(r(d[4])),s=l(r(d[5])),f=l(r(d[6])),_=l(r(d[7])),c=l(r(d[8])),p=r(d[9]),h=r(d[10]),v=r(d[11]),C=r(d[12]),E=t(r(d[13])),y=l(r(d[14])),M=l(r(d[15])),P=l(r(d[16])),T=(function(t){function l(t){var o;return(0,n.default)(this,l),(o=(0,u.default)(this,(0,s.default)(l).call(this,t)))._onClose=o._onClose.bind((0,_.default)((0,_.default)(o))),o}return(0,f.default)(l,t),(0,o.default)(l,[{key:"render",value:function(){return c.default.createElement(h.JitsiModal,{headerProps:{headerLabelKey:'chat.title'},modalId:C.CHAT_VIEW_MODAL_ID,onClose:this._onClose},c.default.createElement(M.default,{messages:this.props._messages}),c.default.createElement(P.default,null),c.default.createElement(y.default,{onSend:this.props._onSendMessage}))}},{key:"_onClose",value:function(){return this.props._onToggleChat(),!0}}]),l})(E.default),b=(0,p.translate)((0,v.connect)(E._mapStateToProps,E._mapDispatchToProps)(T));e.default=b},1322,[2,3,4,5,6,9,10,8,59,726,1192,443,1323,1324,1325,1327,1336]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.MESSAGE_TYPE_REMOTE=e.MESSAGE_TYPE_LOCAL=e.MESSAGE_TYPE_ERROR=e.INCOMING_MSG_SOUND_ID=e.CHAT_SIZE=e.CHAT_VIEW_MODAL_ID=void 0;e.CHAT_VIEW_MODAL_ID='chatView';e.CHAT_SIZE=375;e.INCOMING_MSG_SOUND_ID='INCOMING_MSG_SOUND';e.MESSAGE_TYPE_ERROR='error';e.MESSAGE_TYPE_LOCAL='local';e.MESSAGE_TYPE_REMOTE='remote'},1323,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapDispatchToProps=function(t){return{_onToggleChat:function(){t((0,c.toggleChat)())},_onSendMessage:function(n){t((0,c.sendMessage)(n))}}},e._mapStateToProps=function(t){var n=t['features/chat'],o=n.isOpen,s=n.messages,u=(0,p.getLocalParticipant)(t);return{_isOpen:o,_messages:s,_showNamePrompt:!u.name}},e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),f=r(d[5]),p=r(d[6]),c=r(d[7]),l=(function(t){function f(){return(0,n.default)(this,f),(0,o.default)(this,(0,s.default)(f).apply(this,arguments))}return(0,u.default)(f,t),f})(f.Component);e.default=l},1324,[3,4,6,9,10,59,704,1318]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),h=t(r(d[8])),_=r(d[9]),b=r(d[10]),v=r(d[11]),S=n(r(d[12])),p=(function(t){function n(t){var u;return(0,l.default)(this,n),(u=(0,o.default)(this,(0,s.default)(n).call(this,t))).state={addPadding:!1,message:'',showSend:!1},u._onChangeText=u._onChangeText.bind((0,c.default)((0,c.default)(u))),u._onFieldReferenceAvailable=u._onFieldReferenceAvailable.bind((0,c.default)((0,c.default)(u))),u._onFocused=u._onFocused.bind((0,c.default)((0,c.default)(u))),u._onSubmit=u._onSubmit.bind((0,c.default)((0,c.default)(u))),u}return(0,f.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){return h.default.createElement(_.View,{style:[S.default.inputBar,this.state.addPadding?S.default.extraBarPadding:null]},h.default.createElement(_.TextInput,{blurOnSubmit:!1,multiline:!1,onBlur:this._onFocused(!1),onChangeText:this._onChangeText,onFocus:this._onFocused(!0),onSubmitEditing:this._onSubmit,placeholder:this.props.t('chat.fieldPlaceHolder'),ref:this._onFieldReferenceAvailable,returnKeyType:"send",style:S.default.inputField,value:this.state.message}),this.state.showSend&&h.default.createElement(_.TouchableOpacity,{onPress:this._onSubmit},h.default.createElement(v.Icon,{src:v.IconChatSend,style:S.default.sendButtonIcon})))}},{key:"_onChangeText",value:function(t){this.setState({message:t,showSend:Boolean(t)})}},{key:"_onFieldReferenceAvailable",value:function(t){t&&t.focus()}},{key:"_onFocused",value:function(t){var n=this;return function(){'android'===_.Platform.OS&&n.setState({addPadding:t})}}},{key:"_onSubmit",value:function(){var t=this.state.message.trim();t&&this.props.onSend(t),this.setState({message:'',showSend:!1})}}]),n})(h.Component),y=(0,b.translate)(p);e.default=y},1325,[2,3,4,5,6,9,10,8,59,15,726,548,1326]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[0]),t=r(d[1]),l={avatarWrapper:{marginRight:8,width:32},chatLink:{color:t.ColorPalette.blue},detailsWrapper:{alignItems:'flex-start',flex:1,flexDirection:'column'},emptyComponentWrapper:{alignSelf:'center',flex:1,padding:t.BoxModel.padding,paddingTop:'10%'},extraBarPadding:{paddingBottom:30},inputBar:{alignItems:'center',borderTopColor:'rgb(209, 219, 231)',borderTopWidth:1,flexDirection:'row',paddingHorizontal:t.BoxModel.padding},inputField:{color:'rgb(28, 32, 37)',flex:1,height:48},messageBubble:{alignItems:'center',borderRadius:8,flexDirection:'row'},messageContainer:{flex:1},messageWrapper:{alignItems:'flex-start',flex:1,flexDirection:'row',marginHorizontal:17,marginVertical:4},ownMessageDetailsWrapper:{alignItems:'flex-end'},replyWrapper:{alignItems:'center',flexDirection:'row'},sendButtonIcon:{color:t.ColorPalette.darkGrey,fontSize:22},systemMessageBubble:{backgroundColor:'rgb(247, 215, 215)'},textWrapper:{alignItems:'flex-start',flexDirection:'column',padding:9},timeText:{color:'rgb(164, 184, 209)',fontSize:13}};e.default=l,o.ColorSchemeRegistry.register('Chat',{backdrop:{backgroundColor:(0,o.schemeColor)('background'),flex:1},displayName:{color:(0,o.schemeColor)('displayName'),fontSize:13},emptyComponentText:{color:(0,o.schemeColor)('displayName'),textAlign:'center'},localMessageBubble:{backgroundColor:(0,o.schemeColor)('localMsgBackground'),borderTopRightRadius:0},messageRecipientCancelIcon:{color:(0,o.schemeColor)('icon'),fontSize:18},messageRecipientContainer:{alignItems:'center',backgroundColor:(0,o.schemeColor)('privateMsgBackground'),flexDirection:'row',padding:t.BoxModel.padding},messageRecipientText:{color:(0,o.schemeColor)('text'),flex:1},privateNotice:{color:(0,o.schemeColor)('privateMsgNotice'),fontSize:11,marginTop:6},privateMessageBubble:{backgroundColor:(0,o.schemeColor)('privateMsgBackground')},remoteMessageBubble:{backgroundColor:(0,o.schemeColor)('remoteMsgBackground'),borderTopLeftRadius:0},replyContainer:{alignSelf:'stretch',borderLeftColor:(0,o.schemeColor)('replyBorder'),borderLeftWidth:1,justifyContent:'center'},replyStyles:{iconStyle:{color:(0,o.schemeColor)('replyIcon'),fontSize:22,padding:8}}})},1326,[438,522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),f=t(r(d[6])),y=t(r(d[7])),p=r(d[8]),c=r(d[9]),_=r(d[10]),v=r(d[11]),E=(r(d[12]),t(r(d[13]))),h=t(r(d[14])),k=t(r(d[15])),C=(function(t){function c(t){var s;return(0,n.default)(this,c),(s=(0,u.default)(this,(0,l.default)(c).call(this,t)))._keyExtractor=s._keyExtractor.bind((0,f.default)((0,f.default)(s))),s._renderListEmptyComponent=s._renderListEmptyComponent.bind((0,f.default)((0,f.default)(s))),s._renderMessageGroup=s._renderMessageGroup.bind((0,f.default)((0,f.default)(s))),s}return(0,o.default)(c,t),(0,s.default)(c,[{key:"render",value:function(){var t=this._getMessagesGroupedBySender();return y.default.createElement(p.FlatList,{ListEmptyComponent:this._renderListEmptyComponent,data:t,inverted:Boolean(t.length),keyExtractor:this._keyExtractor,keyboardShouldPersistTaps:"always",renderItem:this._renderMessageGroup,style:k.default.messageContainer})}},{key:"_keyExtractor",value:function(t,n){return"key_"+n}},{key:"_renderListEmptyComponent",value:function(){var t=this.props,n=t._styles,s=t.t;return y.default.createElement(p.View,{style:k.default.emptyComponentWrapper},y.default.createElement(p.Text,{style:n.emptyComponentText},s('chat.noMessagesMessage')))}},{key:"_renderMessageGroup",value:function(t){var n=t.item;return y.default.createElement(h.default,{messages:n})}}]),c})(E.default);var M=(0,_.translate)((0,v.connect)(function(t){return{_styles:c.ColorSchemeRegistry.get(t,'Chat')}})(C));e.default=M},1327,[3,4,5,6,9,10,8,59,15,438,726,443,522,1328,1329,1326]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),u=t(r(d[2])),n=t(r(d[3])),l=t(r(d[4])),f=t(r(d[5])),o=(function(t){function o(){return(0,s.default)(this,o),(0,n.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,f.default)(o,t),(0,u.default)(o,[{key:"_getMessagesGroupedBySender",value:function(){for(var t,s=this.props.messages.length,u=[],n=[],l=0;l<s;l++){var f=this.props.messages[l];f.id===t?n.push(f):(n.length&&u.push(n),n=[f],t=f.id)}return n.length&&u.push(n),u}}]),o})(r(d[6]).PureComponent);e.default=o,o.defaultProps={messages:[]}},1328,[3,4,5,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=s(r(d[2])),u=s(r(d[3])),l=s(r(d[4])),o=s(r(d[5])),f=s(r(d[6])),_=s(r(d[7])),p=t(r(d[8])),c=r(d[9]),h=r(d[10]),E=s(r(d[11])),y=s(r(d[12])),v=(function(t){function s(t){var u;return(0,n.default)(this,s),(u=(0,l.default)(this,(0,o.default)(s).call(this,t)))._keyExtractor=u._keyExtractor.bind((0,_.default)((0,_.default)(u))),u._renderMessage=u._renderMessage.bind((0,_.default)((0,_.default)(u))),u}return(0,f.default)(s,t),(0,u.default)(s,[{key:"render",value:function(){return p.default.createElement(c.FlatList,{data:this.props.messages,inverted:!0,keyExtractor:this._keyExtractor,renderItem:this._renderMessage,style:y.default.messageContainer})}},{key:"_keyExtractor",value:function(t,s){return"key_"+s}},{key:"_renderMessage",value:function(t){var s=t.index,n=t.item;return p.default.createElement(E.default,{message:n,showAvatar:this.props.messages[0].messageType!==h.MESSAGE_TYPE_LOCAL&&s===this.props.messages.length-1,showDisplayName:this.props.messages[0].messageType===h.MESSAGE_TYPE_REMOTE&&s===this.props.messages.length-1,showTimestamp:0===s})}}]),s})(p.Component);e.default=v},1329,[2,3,4,5,6,9,10,8,59,15,1323,1330,1326]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),l=t(r(d[2])),u=t(r(d[3])),n=t(r(d[4])),p=t(r(d[5])),f=t(r(d[6])),y=r(d[7]),o=r(d[8]),c=r(d[9]),v=r(d[10]),h=r(d[11]),_=r(d[12]),E=r(d[13]),T=r(d[14]),M=t(r(d[15])),b=t(r(d[16])),w=t(r(d[17])),N=(function(t){function c(){return(0,s.default)(this,c),(0,u.default)(this,(0,n.default)(c).apply(this,arguments))}return(0,p.default)(c,t),(0,l.default)(c,[{key:"render",value:function(){var t=this.props,s=t._styles,l=t.message,u=l.messageType===E.MESSAGE_TYPE_LOCAL,n=l.privateMessage,p=[w.default.detailsWrapper],o=[w.default.messageBubble];return u?(p.push(w.default.ownMessageDetailsWrapper),o.push(s.localMessageBubble)):l.messageType===E.MESSAGE_TYPE_ERROR?o.push(w.default.systemMessageBubble):o.push(s.remoteMessageBubble),n&&o.push(s.privateMessageBubble),f.default.createElement(y.View,{style:w.default.messageWrapper},this._renderAvatar(),f.default.createElement(y.View,{style:p},f.default.createElement(y.View,{style:o},f.default.createElement(y.View,{style:w.default.textWrapper},this._renderDisplayName(),f.default.createElement(h.Linkify,{linkStyle:w.default.chatLink},(0,T.replaceNonUnicodeEmojis)(this._getMessageText())),this._renderPrivateNotice()),this._renderPrivateReplyButton()),this._renderTimestamp()))}},{key:"_renderAvatar",value:function(){var t=this.props.message;return f.default.createElement(y.View,{style:w.default.avatarWrapper},this.props.showAvatar&&f.default.createElement(o.Avatar,{displayName:t.displayName,participantId:t.id,size:w.default.avatarWrapper.width}))}},{key:"_renderDisplayName",value:function(){var t=this.props,s=t._styles,l=t.message;return t.showDisplayName?f.default.createElement(y.Text,{style:s.displayName},l.displayName):null}},{key:"_renderPrivateNotice",value:function(){var t=this.props,s=t._styles;return t.message.privateMessage?f.default.createElement(y.Text,{style:s.privateNotice},this._getPrivateNoticeMessage()):null}},{key:"_renderPrivateReplyButton",value:function(){var t=this.props,s=t._styles,l=t.message,u=l.messageType;return l.privateMessage&&u!==E.MESSAGE_TYPE_LOCAL?f.default.createElement(y.View,{style:s.replyContainer},f.default.createElement(b.default,{participantID:l.id,reply:!0,showLabel:!1,toggledStyles:s.replyStyles})):null}},{key:"_renderTimestamp",value:function(){return this.props.showTimestamp?f.default.createElement(y.Text,{style:w.default.timeText},this._getFormattedTimestamp()):null}}]),c})(M.default);var S=(0,v.translate)((0,_.connect)(function(t){return{_styles:c.ColorSchemeRegistry.get(t,'Chat')}})(N));e.default=S},1330,[3,4,5,6,9,10,59,15,544,438,726,539,443,1323,1331,1334,1335,1326]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.replaceNonUnicodeEmojis=function(t){for(var u=t,f=0;f<c.length;f++){var o=c[f],s=(0,n.default)(o,2),l=s[0],v=s[1];u=u.replace(l,v)}return u},e.getUnreadCount=function(t){var n=t['features/chat'],u=n.lastReadMessage,f=n.messages,o=f.length;if(!o)return 0;if('ReactNative'===navigator.product)return f.indexOf(u);var c=f.lastIndexOf(u);return o-(c+1)};var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3])),o=r(d[4]),c=[];!(function(){for(var t=Object.entries(u.default),s=0;s<t.length;s++){var l=t[s],v=(0,n.default)(l,2),p=v[0],h=v[1],x=void 0,R=f.default[p];(x=R?R.map(function(t){return(0,o.escapeRegexp)(t)}):[]).push((0,o.escapeRegexp)(":"+p+":"));var j="\\B("+x.join('|')+")\\B";c.push([new RegExp(j,'g'),h])}})()},1331,[3,25,1332,1333,506]);
__d(function(g,r,i,a,m,e,d){m.exports={0:"0\ufe0f\u20e3",1:"1\ufe0f\u20e3",2:"2\ufe0f\u20e3",3:"3\ufe0f\u20e3",4:"4\ufe0f\u20e3",5:"5\ufe0f\u20e3",6:"6\ufe0f\u20e3",7:"7\ufe0f\u20e3",8:"8\ufe0f\u20e3",9:"9\ufe0f\u20e3",10:"\ud83d\udd1f",100:"\ud83d\udcaf",1234:"\ud83d\udd22",grinning_face:"\ud83d\ude00",grinning_face_with_big_eyes:"\ud83d\ude03",grinning_face_with_smiling_eyes:"\ud83d\ude01",beaming_face_with_smiling_eyes:"\ud83d\ude01",grinning_squinting_face:"\ud83d\ude06",grinning_face_with_sweat:"\ud83d\ude05",rolling_on_the_floor_laughing:"\ud83e\udd23",face_with_tears_of_joy:"\ud83d\ude02",slightly_smiling_face:"\ud83d\ude42",upside_down_face:"\ud83d\ude43",winking_face:"\ud83d\ude09",smiling_face_with_smiling_eyes:"\ud83d\ude0a",smiling_face_with_halo:"\ud83d\ude07",smiling_face_with_hearts:"\ud83e\udd70",smiling_face_with_heart_eyes:"\ud83d\ude0d",star_struck:"\ud83e\udd29",face_blowing_a_kiss:"\ud83d\ude18",kissing_face:"\ud83d\ude17",smiling_face:"\u263a\ufe0f",kissing_face_with_closed_eyes:"\ud83d\ude1a",kissing_face_with_smiling_eyes:"\ud83d\ude19",face_savoring_food:"\ud83d\ude0b",face_with_tongue:"\ud83d\ude1b",winking_face_with_tongue:"\ud83d\ude1c",zany_face:"\ud83e\udd2a",squinting_face_with_tongue:"\ud83d\ude1d",money_mouth_face:"\ud83e\udd11",hugging_face:"\ud83e\udd17",face_with_hand_over_mouth:"\ud83e\udd2d",shushing_face:"\ud83e\udd2b",thinking_face:"\ud83e\udd14",zipper_mouth_face:"\ud83e\udd10",face_with_raised_eyebrow:"\ud83e\udd28",neutral_face:"\ud83d\ude10",expressionless_face:"\ud83d\ude11",face_without_mouth:"\ud83d\ude36",smirking_face:"\ud83d\ude0f",unamused_face:"\ud83d\ude12",face_with_rolling_eyes:"\ud83d\ude44",grimacing_face:"\ud83d\ude2c",lying_face:"\ud83e\udd25",relieved_face:"\ud83d\ude0c",pensive_face:"\ud83d\ude14",sleepy_face:"\ud83d\ude2a",drooling_face:"\ud83e\udd24",sleeping_face:"\ud83d\ude34",face_with_medical_mask:"\ud83d\ude37",face_with_thermometer:"\ud83e\udd12",face_with_head_bandage:"\ud83e\udd15",nauseated_face:"\ud83e\udd22",face_vomiting:"\ud83e\udd2e",sneezing_face:"\ud83e\udd27",hot_face:"\ud83e\udd75",cold_face:"\ud83e\udd76",woozy_face:"\ud83e\udd74",dizzy_face:"\ud83d\ude35",exploding_head:"\ud83e\udd2f",cowboy_hat_face:"\ud83e\udd20",partying_face:"\ud83e\udd73",smiling_face_with_sunglasses:"\ud83d\ude0e",nerd_face:"\ud83e\udd13",face_with_monocle:"\ud83e\uddd0",confused_face:"\ud83d\ude15",worried_face:"\ud83d\ude1f",slightly_frowning_face:"\ud83d\ude41",frowning_face:"\u2639",face_with_open_mouth:"\ud83d\ude2e",hushed_face:"\ud83d\ude2f",astonished_face:"\ud83d\ude32",flushed_face:"\ud83d\ude33",pleading_face:"\ud83e\udd7a",frowning_face_with_open_mouth:"\ud83d\ude26",anguished_face:"\ud83d\ude27",fearful_face:"\ud83d\ude28",anxious_face_with_sweat:"\ud83d\ude30",sad_but_relieved_face:"\ud83d\ude25",crying_face:"\ud83d\ude22",loudly_crying_face:"\ud83d\ude2d",face_screaming_in_fear:"\ud83d\ude31",confounded_face:"\ud83d\ude16",persevering_face:"\ud83d\ude23",disappointed_face:"\ud83d\ude1e",downcast_face_with_sweat:"\ud83d\ude13",weary_face:"\ud83d\ude29",tired_face:"\ud83d\ude2b",yawning_face:"\ud83e\udd71",face_with_steam_from_nose:"\ud83d\ude24",pouting_face:"\ud83d\ude21",angry_face:"\ud83d\ude20",face_with_symbols_on_mouth:"\ud83e\udd2c",smiling_face_with_horns:"\ud83d\ude08",angry_face_with_horns:"\ud83d\udc7f",skull:"\ud83d\udc80",skull_and_crossbones:"\u2620\ufe0f",pile_of_poo:"\ud83d\udca9",clown_face:"\ud83e\udd21",ogre:"\ud83d\udc79",goblin:"\ud83d\udc7a",ghost:"\ud83d\udc7b",alien:"\ud83d\udc7d",alien_monster:"\ud83d\udc7e",robot:"\ud83e\udd16",grinning_cat:"\ud83d\ude3a",grinning_cat_with_smiling_eyes:"\ud83d\ude38",cat_with_tears_of_joy:"\ud83d\ude39",smiling_cat_with_heart_eyes:"\ud83d\ude3b",cat_with_wry_smile:"\ud83d\ude3c",kissing_cat:"\ud83d\ude3d",weary_cat:"\ud83d\ude40",crying_cat:"\ud83d\ude3f",pouting_cat:"\ud83d\ude3e",see_no_evil_monkey:"\ud83d\ude48",hear_no_evil_monkey:"\ud83d\ude49",speak_no_evil_monkey:"\ud83d\ude4a",kiss_mark:"\ud83d\udc8b",love_letter:"\ud83d\udc8c",heart_with_arrow:"\ud83d\udc98",heart_with_ribbon:"\ud83d\
__d(function(g,r,i,a,m,e,d){m.exports={angry:[">:(",">:-("],blush:[':")',':-")'],broken_heart:["</3","<\\3"],confused:[":/",":-/"],cry:[":'(",":'-(",":,(",":,-("],frowning:[":(",":-("],heart:["<3"],imp:["]:(","]:-("],innocent:["o:)","O:)","o:-)","O:-)","0:)","0:-)"],joy:[":')",":'-)",":,)",":,-)",":'D",":'-D",":,D",":,-D"],kissing:[":*",":-*"],laughing:["x-)","X-)"],neutral_face:[":|",":-|"],open_mouth:[":o",":-o",":O",":-O"],rage:[":@",":-@"],smile:[":D",":-D"],smiley:[":)",":-)"],smiling_imp:["]:)","]:-)"],sob:[":,'(",":,'-(",";(",";-("],stuck_out_tongue:[":P",":-P",":p",":-p"],sunglasses:["8-)","B-)"],sweat:[",:(",",:-("],sweat_smile:[",:)",",:-)"],unamused:[":s",":-S",":z",":-Z",":$",":-$"],wink:[";)",";-)"]}},1333,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),n=t(r(d[4])),p=t(r(d[5])),c=r(d[6]),f=r(d[7]),l=r(d[8]),v=(function(t){function c(){return(0,s.default)(this,c),(0,o.default)(this,(0,n.default)(c).apply(this,arguments))}return(0,p.default)(c,t),(0,u.default)(c,[{key:"_getFormattedTimestamp",value:function(){return(0,f.getLocalizedDateFormatter)(new Date(this.props.message.timestamp)).format("H:mm")}},{key:"_getMessageText",value:function(){var t=this.props.message;return t.messageType===l.MESSAGE_TYPE_ERROR?this.props.t('chat.error',{error:t.message}):t.message}},{key:"_getPrivateNoticeMessage",value:function(){var t=this.props,s=t.message,u=t.t;return u('chat.privateNotice',{recipient:s.messageType===l.MESSAGE_TYPE_LOCAL?s.recipient:u('chat.you')})}}]),c})(c.PureComponent);e.default=v},1334,[3,4,5,6,9,10,59,726,1323]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapDispatchToProps=h,e._mapStateToProps=M,e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),c=t(r(d[3])),o=t(r(d[4])),l=t(r(d[5])),p=r(d[6]),u=r(d[7]),f=r(d[8]),v=r(d[9]),_=r(d[10]),y=r(d[11]),b=(function(t){function p(){var t,s;(0,n.default)(this,p);for(var l=arguments.length,f=new Array(l),v=0;v<l;v++)f[v]=arguments[v];return(s=(0,c.default)(this,(t=(0,o.default)(p)).call.apply(t,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.privateMessage',s.icon=u.IconMessage,s.label='toolbar.privateMessage',s.toggledIcon=u.IconReply,s}return(0,l.default)(p,t),(0,s.default)(p,[{key:"_handleClick",value:function(){var t=this.props,n=t._participant;(0,t._setPrivateMessageRecipient)(n)}},{key:"_isToggled",value:function(){return this.props.reply}}]),p})(_.AbstractButton);function h(t){return{_setPrivateMessageRecipient:function(n){t((0,y.setPrivateMessageRecipient)(n))}}}function M(t,n){return{_participant:(0,f.getParticipantById)(t,n.participantID)}}var P=(0,p.translate)((0,v.connect)(M,h)(b));e.default=P},1335,[3,4,5,6,9,10,726,548,704,443,970,1318]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),l=n(r(d[3])),c=n(r(d[4])),o=n(r(d[5])),u=n(r(d[6])),p=n(r(d[7])),f=n(r(d[8])),h=r(d[9]),v=r(d[10]),_=r(d[11]),y=r(d[12]),R=r(d[13]),T=t(r(d[14])),C=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,u.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,c.default)(n,[{key:"render",value:function(){var t=this.props,n=t._privateMessageRecipient,s=t._styles;if(!n)return null;var l=this.props.t;return f.default.createElement(h.View,{style:s.messageRecipientContainer},f.default.createElement(h.Text,{style:s.messageRecipientText},l('chat.messageTo',{recipient:n})),f.default.createElement(h.TouchableHighlight,{onPress:this.props._onRemovePrivateMessageRecipient},f.default.createElement(y.Icon,{src:y.IconCancelSelection,style:s.messageRecipientCancelIcon})))}}]),n})(T.default);var P=(0,_.translate)((0,R.connect)(function(t){return(0,s.default)({},(0,T._mapStateToProps)(t),{_styles:v.ColorSchemeRegistry.get(t,'Chat')})},T._mapDispatchToProps)(C));e.default=P},1336,[2,3,53,4,5,6,9,10,59,15,438,726,548,443,1337]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapDispatchToProps=function(t){return{_onRemovePrivateMessageRecipient:function(){t((0,f.setPrivateMessageRecipient)())}}},e._mapStateToProps=function(t){var n=t['features/chat'].privateMessageRecipient;return{_privateMessageRecipient:n?(0,c.getParticipantDisplayName)(t,n.id):void 0}},e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),s=t(r(d[4])),p=r(d[5]),c=r(d[6]),f=r(d[7]),v=(function(t){function p(){return(0,n.default)(this,p),(0,u.default)(this,(0,o.default)(p).apply(this,arguments))}return(0,s.default)(p,t),p})(p.PureComponent);e.default=v},1337,[3,4,6,9,10,59,704,1318]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),c=r(d[6]),p=r(d[7]),f=r(d[8]),h=r(d[9]),_=r(d[10]),v=r(d[11]),y=r(d[12]),b=r(d[13]),C=r(d[14]),I=(function(t){function c(){var t,o;(0,n.default)(this,c);for(var u=arguments.length,f=new Array(u),h=0;h<u;h++)f[h]=arguments[h];return(o=(0,l.default)(this,(t=(0,s.default)(c)).call.apply(t,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.chat',o.icon=p.IconChat,o.label='toolbar.chat',o.toggledIcon=p.IconChatUnread,o}return(0,u.default)(c,t),(0,o.default)(c,[{key:"_handleClick",value:function(){var t=this;this.props._showNamePrompt?this.props._displayNameInputDialog(function(){t.props._displayChat()}):this.props._displayChat()}},{key:"_isToggled",value:function(){return Boolean(this.props._unreadMessageCount)}}]),c})(v.AbstractButton);var A=(0,_.connect)(function(t,n){var o=(0,h.getLocalParticipant)(t),l=(0,c.getFeatureFlag)(t,c.CHAT_ENABLED,!0),s=n.visible,u=void 0===s?l:s;return{_showNamePrompt:!o.name,_unreadMessageCount:(0,C.getUnreadCount)(t),visible:u}},function(t){return{_displayChat:function(){t((0,f.setActiveModalId)(b.CHAT_VIEW_MODAL_ID))},_displayNameInputDialog:function(n){t((0,y.openDisplayNamePrompt)(n))}}})(I);e.default=A},1338,[3,4,5,6,9,10,951,548,1192,704,443,970,1239,1323,1331]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),l=t(r(d[4])),u=t(r(d[5])),c=t(r(d[6])),f=r(d[7]),v=r(d[8]),p=r(d[9]),P=r(d[10]),_=(function(t){function v(){return(0,n.default)(this,v),(0,s.default)(this,(0,l.default)(v).apply(this,arguments))}return(0,u.default)(v,t),(0,o.default)(v,[{key:"render",value:function(){return c.default.createElement(f.ConfirmDialog,{cancelKey:"dialog.sendPrivateMessageCancel",contentKey:"dialog.sendPrivateMessage",okKey:"dialog.sendPrivateMessageOk",onCancel:this._onSendGroupMessage,onSubmit:this._onSendPrivateMessage})}}]),v})(P.AbstractChatPrivacyDialog),h=(0,v.translate)((0,p.connect)(P._mapStateToProps,P._mapDispatchToProps)(_));e.default=h},1339,[3,4,5,6,9,10,59,531,726,443,1340]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapDispatchToProps=function(t){return{_onSendMessage:function(n){t((0,l.sendMessage)(n,!0))},_onSetMessageRecipient:function(n){t((0,l.setPrivateMessageRecipient)(n))}}},e._mapStateToProps=function(t,n){return{_participant:(0,_.getParticipantById)(t,n.participantID)}},e.AbstractChatPrivacyDialog=void 0;var n=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),p=t(r(d[5])),c=t(r(d[6])),f=r(d[7]),_=r(d[8]),l=r(d[9]),v=(function(t){function f(t){var s;return(0,n.default)(this,f),(s=(0,o.default)(this,(0,u.default)(f).call(this,t)))._onSendGroupMessage=s._onSendGroupMessage.bind((0,c.default)((0,c.default)(s))),s._onSendPrivateMessage=s._onSendPrivateMessage.bind((0,c.default)((0,c.default)(s))),s}return(0,p.default)(f,t),(0,s.default)(f,[{key:"_onSendGroupMessage",value:function(){return this.props._onSendMessage(this.props.message),!0}},{key:"_onSendPrivateMessage",value:function(){var t=this.props,n=t.message,s=t._onSendMessage;return(0,t._onSetMessageRecipient)(t._participant),s(n),!0}}]),f})(f.PureComponent);e.AbstractChatPrivacyDialog=v},1340,[3,4,5,6,9,10,8,59,704,1318]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.INCOMING_MSG_SOUND_FILE=void 0;e.INCOMING_MSG_SOUND_FILE='incomingMessage.wav'},1341,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),c=r(d[2]),s=r(d[3]),o=r(d[4]),u=r(d[5]),f=r(d[6]),p=r(d[7]),l=r(d[8]),v=r(d[9]),E=r(d[10]);u.MiddlewareRegistry.register(function(c){return function(s){return function(o){var u=s(o);switch(o.type){case n.CONFERENCE_JOINED:case f.SET_REDUCED_UI:var p=c.dispatch,b=(0,c.getState)()['features/base/responsive-ui'].reducedUI;p((0,v.setToolboxEnabled)(!b)),p((0,l.setFilmstripEnabled)(!b));break;case n.KICKED_OUT:var D=c.dispatch;D((0,E.notifyKickedOut)(o.participant,function(){D((0,n.conferenceLeft)(o.conference)),D((0,t.appNavigate)(void 0))}))}return u}}}),u.StateListenerRegistry.register(function(t){return(0,n.getCurrentConference)(t)},function(t,n,u){var f=n.dispatch,l=n.getState,v=l()['features/base/conference'],E=v.authRequired,b=v.membersOnly,D=v.passwordRequired;t!==u&&(f((0,o.pinParticipant)(null)),void 0!==E||void 0!==D||void 0!==b||(0,c.isDialogOpen)(l(),p.FeedbackDialog)||f((0,c.hideDialog)()),f((0,s.setActiveModalId)()))})},1342,[1100,1101,531,1192,704,443,1081,1343,1349,1000,1388]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1343,[1344,1346,1347]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.cancelFeedback=function(n,t){return{type:o.CANCEL_FEEDBACK,message:t,score:n}},e.maybeOpenFeedbackDialog=function(t){return function(o,f){var s=f(),b=s['features/base/config'].feedbackPercentage,l=void 0===b?100:b;if(interfaceConfig.filmStripOnly||config.iAmRecorder);else{if(s['features/base/dialog'].component===c.FeedbackDialog)return Promise.reject(n.FEEDBACK_REQUEST_IN_PROGRESS);if(s['features/feedback'].submitted)return Promise.resolve({feedbackSubmitted:!0,showThankYou:!0});if(t.isCallstatsEnabled()&&l>100*Math.random())return new Promise(function(n){o(u(t,function(){var t=f()['features/feedback'].submitted;n({feedbackSubmitted:t,showThankYou:!1})}))})}return Promise.resolve({feedbackSubmitted:!1,showThankYou:!0})}},e.openFeedbackDialog=u,e.submitFeedback=function(n,t,c){return function(u){return c.sendFeedback(n,t).then(function(){return u({type:o.SUBMIT_FEEDBACK_SUCCESS})},function(n){return u({type:o.SUBMIT_FEEDBACK_ERROR,error:n}),Promise.reject(n)})}};var n=r(d[0]),t=r(d[1]),o=r(d[2]),c=r(d[3]);function u(n,o){return(0,t.openDialog)(c.FeedbackDialog,{conference:n,onClose:o})}},1344,[1345,531,1346,1347]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.FEEDBACK_REQUEST_IN_PROGRESS=void 0;e.FEEDBACK_REQUEST_IN_PROGRESS='FeedbackRequestInProgress'},1345,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SUBMIT_FEEDBACK_SUCCESS=e.SUBMIT_FEEDBACK_ERROR=e.CANCEL_FEEDBACK=void 0;e.CANCEL_FEEDBACK='CANCEL_FEEDBACK';e.SUBMIT_FEEDBACK_ERROR='SUBMIT_FEEDBACK_ERROR';e.SUBMIT_FEEDBACK_SUCCESS='SUBMIT_FEEDBACK_SUCCESS'},1346,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"FeedbackDialog",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1347,[3,1348]);
__d(function(g,r,i,a,m,e,d){},1348,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},1349,[1350,1259,1351,1386,1355]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setFilmstripEnabled=function(n){return{type:t.SET_FILMSTRIP_ENABLED,enabled:n}},e.setFilmstripHovered=function(n){return{type:t.SET_FILMSTRIP_HOVERED,hovered:n}},e.setFilmstripVisible=function(n){return{type:t.SET_FILMSTRIP_VISIBLE,visible:n}},e.setTileViewDimensions=function(n){var s=n.thumbnailSize;return{type:t.SET_TILE_VIEW_DIMENSIONS,dimensions:{thumbnailSize:s}}};var t=r(d[0])},1350,[1259]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1351,[1352]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1352,[1353]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Filmstrip",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"TileView",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"styles",{enumerable:!0,get:function(){return f.default}});var n=t(r(d[1])),u=t(r(d[2])),f=t(r(d[3]))},1353,[3,1354,1387,1385]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),s=l(r(d[4])),o=l(r(d[5])),f=l(r(d[6])),c=l(r(d[7])),p=t(r(d[8])),_=r(d[9]),h=r(d[10]),v=r(d[11]),b=r(d[12]),E=r(d[13]),T=l(r(d[14])),y=l(r(d[15])),R=l(r(d[16])),w=(function(t){function l(t){var n;return(0,u.default)(this,l),(n=(0,o.default)(this,(0,f.default)(l).call(this,t)))._separateLocalThumbnail='android'!==h.Platform.OS,n}return(0,c.default)(l,t),(0,s.default)(l,[{key:"render",value:function(){var t=this.props,l=t._aspectRatio,n=t._enabled,u=t._participants,s=t._visible;if(!n)return null;var o=l===b.ASPECT_RATIO_NARROW,f=o?R.default.filmstripNarrow:R.default.filmstripWide;return p.default.createElement(h.Container,{style:f,visible:s},this._separateLocalThumbnail&&!o&&p.default.createElement(T.default,null),p.default.createElement(_.ScrollView,{horizontal:o,showsHorizontalScrollIndicator:!1,showsVerticalScrollIndicator:!1,style:R.default.scrollView},!this._separateLocalThumbnail&&!o&&p.default.createElement(T.default,null),this._sort(u,o).map(function(t){return p.default.createElement(y.default,{key:t.id,participant:t})}),!this._separateLocalThumbnail&&o&&p.default.createElement(T.default,null)),this._separateLocalThumbnail&&o&&p.default.createElement(T.default,null))}},{key:"_sort",value:function(t,l){var u=(0,n.default)(t);return l&&u.reverse(),u}}]),l})(p.Component);var L=(0,v.connect)(function(t){var l=t['features/base/participants'],n=t['features/filmstrip'].enabled;return{_aspectRatio:t['features/base/responsive-ui'].aspectRatio,_enabled:n,_participants:l.filter(function(t){return!t.local}),_visible:(0,E.isFilmstripVisible)(t)}})(w);e.default=L},1354,[2,3,31,4,5,6,9,10,59,15,539,443,999,1355,1356,1357,1385]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isFilmstripVisible=function(n){return(0,t.toState)(n)['features/base/participants'].length>1};var t=r(d[0])},1355,[443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),c=n(r(d[4])),f=n(r(d[5])),o=n(r(d[6])),p=t(r(d[7])),s=r(d[8]),v=r(d[9]),_=r(d[10]),h=n(r(d[11])),y=n(r(d[12])),P=(function(t){function n(){return(0,l.default)(this,n),(0,c.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,o.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props._localParticipant;return p.default.createElement(s.View,{style:y.default.localThumbnail},p.default.createElement(h.default,{participant:t}))}}]),n})(p.Component);var b=(0,_.connect)(function(t){return{_localParticipant:(0,v.getLocalParticipant)(t)}})(P);e.default=b},1356,[2,3,4,5,6,9,10,59,15,704,443,1357,1385]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=r(d[3]),u=r(d[4]),c=r(d[5]),p=r(d[6]),f=r(d[7]),s=r(d[8]),E=r(d[9]),_=(r(d[10]),r(d[11])),I=r(d[12]),T=r(d[13]),y=r(d[14]),v=r(d[15]),b=n(r(d[16])),P=n(r(d[17])),V=n(r(d[18])),C=n(r(d[19])),k=n(r(d[20])),h=n(r(d[21])),A=t(r(d[22]));var M=(0,E.connect)(function(t,n){var l,o=t['features/large-video'],c=t['features/base/tracks'],s=n.participant,E=s.id,I=(0,_.getTrackByMediaTypeAndParticipant)(c,p.MEDIA_TYPE.AUDIO,E),T=(0,_.getTrackByMediaTypeAndParticipant)(c,p.MEDIA_TYPE.VIDEO,E),y=(0,f.getParticipantCount)(t),v=s.dominantSpeaker&&y>2,b=!(0,f.isEveryoneModerator)(t)&&s.role===f.PARTICIPANT_ROLE.MODERATOR;return{_audioMuted:null==(l=null==I?void 0:I.muted)||l,_largeVideo:o,_renderDominantSpeakerIndicator:v,_renderModeratorIndicator:b,_styles:u.ColorSchemeRegistry.get(t,'Thumbnail'),_videoTrack:T}},function(t,n){return{_onClick:function(){var l=n.participant,o=n.tileView;t(o?(0,v.toggleToolboxVisible)():(0,f.pinParticipant)(l.pinned?null:l.id))},_onShowRemoteVideoMenu:function(){var l=n.participant;t((0,c.openDialog)(y.RemoteVideoMenu,{participant:l}))}}})(function(t){var n=t._audioMuted,u=t._largeVideo,c=t._onClick,E=t._onShowRemoteVideoMenu,_=t._renderDominantSpeakerIndicator,y=t._renderModeratorIndicator,v=t._styles,M=t._videoTrack,D=t.disableTint,S=t.participant,R=t.renderDisplayName,O=t.tileView,w=S.id,F=w===u.participantId,L=!M||M.muted,N=M&&M.videoType===p.VIDEO_TYPE.DESKTOP;return l.default.createElement(s.Container,{onClick:c,onLongPress:S.local?void 0:E,style:[A.default.thumbnail,S.pinned&&!O?v.thumbnailPinned:null,t.styleOverrides||null],touchFeedback:!1},l.default.createElement(f.ParticipantView,{avatarSize:O?1.5*A.AVATAR_SIZE:A.AVATAR_SIZE,disableVideo:N||S.isFakeParticipant,participantId:w,style:v.participantViewStyle,tintEnabled:F&&!D,tintStyle:v.activeThumbnailTint,zOrder:1}),R&&l.default.createElement(s.Container,{style:A.default.displayNameContainer},l.default.createElement(T.DisplayNameLabel,{participantId:w})),y&&l.default.createElement(o.View,{style:A.default.moderatorIndicatorContainer},l.default.createElement(V.default,null)),!S.isFakeParticipant&&l.default.createElement(o.View,{style:[A.default.thumbnailTopIndicatorContainer,A.default.thumbnailTopLeftIndicatorContainer]},l.default.createElement(C.default,{participantId:S.id}),_&&l.default.createElement(P.default,null)),!S.isFakeParticipant&&l.default.createElement(o.View,{style:[A.default.thumbnailTopIndicatorContainer,A.default.thumbnailTopRightIndicatorContainer]},l.default.createElement(I.ConnectionIndicator,{participantId:S.id})),!S.isFakeParticipant&&l.default.createElement(s.Container,{style:A.default.thumbnailIndicatorContainer},n&&l.default.createElement(b.default,null),L&&l.default.createElement(h.default,null),N&&l.default.createElement(k.default,null)))});e.default=M},1357,[2,3,59,15,438,531,887,704,539,443,522,903,1005,1239,1358,1000,1378,1379,1380,1381,1383,1384,1385]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1358,[1359]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1359,[1360]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"GrantModeratorDialog",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"KickRemoteParticipantDialog",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"MuteRemoteParticipantDialog",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"RemoteVideoMenu",{enumerable:!0,get:function(){return f.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4]))},1360,[3,1361,1363,1365,1368]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),s=r(d[7]),v=r(d[8]),_=r(d[9]),h=(function(t){function v(){return(0,n.default)(this,v),(0,l.default)(this,(0,o.default)(v).apply(this,arguments))}return(0,f.default)(v,t),(0,u.default)(v,[{key:"render",value:function(){return c.default.createElement(s.ConfirmDialog,{contentKey:"dialog.grantModeratorDialog",onSubmit:this._onSubmit})}}]),v})(t(r(d[10])).default),y=(0,v.translate)((0,_.connect)()(h));e.default=y},1361,[3,4,5,6,9,10,59,531,726,443,1362]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),p=r(d[7]),s=r(d[8]),v=r(d[9]),_=(function(t){function p(t){var u;return(0,n.default)(this,p),(u=(0,o.default)(this,(0,l.default)(p).call(this,t)))._onSubmit=u._onSubmit.bind((0,c.default)((0,c.default)(u))),u}return(0,f.default)(p,t),(0,u.default)(p,[{key:"_onSubmit",value:function(){var t=this.props,n=t.dispatch,u=t.participantID;return(0,s.sendAnalytics)((0,s.createRemoteVideoMenuButtonEvent)('grant.moderator.button',{participant_id:u})),n((0,v.grantModerator)(u)),!0}}]),p})(p.Component);e.default=_},1362,[3,4,5,6,9,10,8,59,905,704]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),s=r(d[7]),v=r(d[8]),_=r(d[9]),h=(function(t){function v(){return(0,n.default)(this,v),(0,l.default)(this,(0,f.default)(v).apply(this,arguments))}return(0,o.default)(v,t),(0,u.default)(v,[{key:"render",value:function(){return c.default.createElement(s.ConfirmDialog,{contentKey:"dialog.kickParticipantDialog",onSubmit:this._onSubmit})}}]),v})(t(r(d[10])).default),p=(0,v.translate)((0,_.connect)()(h));e.default=p},1363,[3,4,5,6,9,10,59,531,726,443,1364]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),p=r(d[7]),s=r(d[8]),v=r(d[9]),_=(function(t){function p(t){var u;return(0,n.default)(this,p),(u=(0,o.default)(this,(0,l.default)(p).call(this,t)))._onSubmit=u._onSubmit.bind((0,f.default)((0,f.default)(u))),u}return(0,c.default)(p,t),(0,u.default)(p,[{key:"_onSubmit",value:function(){var t=this.props,n=t.dispatch,u=t.participantID;return(0,s.sendAnalytics)((0,s.createRemoteVideoMenuButtonEvent)('kick.button',{participant_id:u})),n((0,v.kickParticipant)(u)),!0}}]),p})(p.Component);e.default=_},1364,[3,4,5,6,9,10,8,59,905,704]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),s=r(d[7]),v=r(d[8]),_=r(d[9]),h=(function(t){function v(){return(0,n.default)(this,v),(0,l.default)(this,(0,f.default)(v).apply(this,arguments))}return(0,o.default)(v,t),(0,u.default)(v,[{key:"render",value:function(){return c.default.createElement(s.ConfirmDialog,{contentKey:"dialog.muteParticipantDialog",onSubmit:this._onSubmit})}}]),v})(t(r(d[10])).default),p=(0,v.translate)((0,_.connect)()(h));e.default=p},1365,[3,4,5,6,9,10,59,531,726,443,1366]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),o=t(r(d[5])),c=t(r(d[6])),p=r(d[7]),s=r(d[8]),v=(function(t){function p(t){var n;return(0,u.default)(this,p),(n=(0,f.default)(this,(0,l.default)(p).call(this,t)))._onSubmit=n._onSubmit.bind((0,c.default)((0,c.default)(n))),n}return(0,o.default)(p,t),(0,n.default)(p,[{key:"_onSubmit",value:function(){var t=this.props,u=t.dispatch,n=t.participantID;return u((0,s.muteRemote)(n)),!0}}]),p})(p.Component);e.default=v},1366,[3,4,5,6,9,10,8,59,1367]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.hideRemoteVideoMenu=function(){return(0,o.hideDialog)(l.RemoteVideoMenu)},e.muteLocal=s,e.muteRemote=p,e.muteAllParticipants=function(t){return function(n,u){var o=u(),c=(0,f.getLocalParticipant)(o).id,l=o['features/base/participants'].map(function(t){return t.id});l.filter(function(n){return!t.includes(n)}).map(function(t){return t===c?s(!0):p(t)}).map(n)}};var n=t(r(d[1])),u=r(d[2]),o=r(d[3]),c=r(d[4]),f=r(d[5]),l=r(d[6]);function s(t){return function(o){(0,u.sendAnalytics)((0,u.createToolbarEvent)(u.AUDIO_MUTE,{enable:t})),o((0,c.setAudioMuted)(t,!0)),'undefined'==typeof APP||APP.UI.emitEvent(n.default.AUDIO_MUTED,t,!0)}}function p(t){return function(n){(0,u.sendAnalytics)((0,u.createRemoteMuteConfirmedEvent)(t)),n((0,f.muteRemoteParticipant)(t))}}},1367,[3,1144,905,531,887,704,1359]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n,u=l(r(d[2])),o=l(r(d[3])),s=l(r(d[4])),c=l(r(d[5])),p=l(r(d[6])),f=l(r(d[7])),h=t(r(d[8])),_=r(d[9]),b=r(d[10]),v=r(d[11]),y=r(d[12]),C=r(d[13]),E=r(d[14]),M=(r(d[15]),r(d[16])),S=r(d[17]),k=l(r(d[18])),B=l(r(d[19])),D=l(r(d[20])),N=l(r(d[21])),R=l(r(d[22])),O=(function(t){function l(t){var n;return(0,u.default)(this,l),(n=(0,s.default)(this,(0,c.default)(l).call(this,t)))._onCancel=n._onCancel.bind((0,f.default)((0,f.default)(n))),n}return(0,p.default)(l,t),(0,o.default)(l,[{key:"render",value:function(){var t=this.props,l=t._disableKick,n=t._disableRemoteMute,u=t.participant,o={afterClick:this._onCancel,showLabel:!0,participantID:u.id,styles:this.props._bottomSheetStyles.buttons},s=[];return n||s.push(h.default.createElement(D.default,o)),s.push(h.default.createElement(k.default,o)),l||s.push(h.default.createElement(B.default,o)),s.push(h.default.createElement(N.default,o)),s.push(h.default.createElement(M.PrivateMessageButton,o)),h.default.createElement(y.BottomSheet,{onCancel:this._onCancel},h.default.createElement(_.View,{style:R.default.participantNameContainer},h.default.createElement(b.Avatar,{participantId:u.id,size:25}),h.default.createElement(_.Text,{style:R.default.participantNameLabel},this.props._participantDisplayName)),s)}},{key:"_onCancel",value:function(){return!!this.props._isOpen&&(this.props.dispatch((0,S.hideRemoteVideoMenu)()),!0)}}]),l})(h.Component);var K=n=(0,E.connect)(function(t,l){var u=l.participant,o=t['features/base/config'],s=o.remoteVideoMenu,c=void 0===s?{}:s,p=o.disableRemoteMute,f=c.disableKick;return{_bottomSheetStyles:v.ColorSchemeRegistry.get(t,'BottomSheet'),_disableKick:Boolean(f),_disableRemoteMute:Boolean(p),_isOpen:(0,y.isDialogOpen)(t,n),_participantDisplayName:(0,C.getParticipantDisplayName)(t,u.id)}})(O);e.default=K},1368,[2,3,4,5,6,9,10,8,59,15,544,438,531,704,443,522,1369,1367,1370,1372,1374,1376,1377]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},1369,[1318,1317,1320,1323]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(d[1]),l=r(d[2]),n=t(r(d[3])),u=(0,o.translate)((0,l.connect)(n._mapStateToProps)(n.default));e.default=u},1370,[2,726,443,1371]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t,o){var n=o.participantID,l=(0,f.getLocalParticipant)(t),c=(0,f.getParticipantById)(t,n);return{visible:Boolean((null==l?void 0:l.role)===f.PARTICIPANT_ROLE.MODERATOR)&&!(0,f.isParticipantModerator)(c)}},e.default=void 0;var o=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),p=r(d[6]),s=r(d[7]),f=r(d[8]),v=r(d[9]),b=r(d[10]),h=(function(t){function f(){var t,n;(0,o.default)(this,f);for(var u=arguments.length,p=new Array(u),v=0;v<u;v++)p[v]=arguments[v];return(n=(0,l.default)(this,(t=(0,c.default)(f)).call.apply(t,[this].concat(p)))).accessibilityLabel='toolbar.accessibilityLabel.grantModerator',n.icon=s.IconCrown,n.label='videothumbnail.grantModerator',n}return(0,u.default)(f,t),(0,n.default)(f,[{key:"_handleClick",value:function(){var t=this.props,o=t.dispatch,n=t.participantID;o((0,p.openDialog)(b.GrantModeratorDialog,{participantID:n}))}}]),f})(v.AbstractButton);e.default=h},1371,[3,4,5,6,9,10,531,548,704,970,1359]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=r(d[1]),o=r(d[2]),l=r(d[3]),u=t(r(d[4]));var c=(0,n.translate)((0,l.connect)(function(t){return{visible:(0,o.isLocalParticipantModerator)(t)}})(u.default));e.default=c},1372,[3,726,704,443,1373]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),c=t(r(d[2])),n=t(r(d[3])),o=t(r(d[4])),u=t(r(d[5])),f=r(d[6]),p=r(d[7]),s=r(d[8]),b=r(d[9]),v=(function(t){function s(){var t,c;(0,l.default)(this,s);for(var u=arguments.length,f=new Array(u),b=0;b<u;b++)f[b]=arguments[b];return(c=(0,n.default)(this,(t=(0,o.default)(s)).call.apply(t,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.kick',c.icon=p.IconKick,c.label='videothumbnail.kick',c}return(0,u.default)(s,t),(0,c.default)(s,[{key:"_handleClick",value:function(){var t=this.props,l=t.dispatch,c=t.participantID;l((0,f.openDialog)(b.KickRemoteParticipantDialog,{participantID:c}))}}]),s})(s.AbstractButton);e.default=v},1373,[3,4,5,6,9,10,531,548,970,1359]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=o(r(d[2])),l=r(d[3]),u=r(d[4]),c=r(d[5]),f=t(r(d[6]));var v=(0,l.translate)((0,c.connect)(function(t,o){return(0,n.default)({},(0,f._mapStateToProps)(t,o),{visible:(0,u.isLocalParticipantModerator)(t)})})(f.default));e.default=v},1374,[2,3,53,726,704,443,1375]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t,u){var n=t['features/base/tracks'];return{_audioTrackMuted:(0,_.isRemoteTrackMuted)(n,b.MEDIA_TYPE.AUDIO,u.participantID)}},e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),s=r(d[6]),p=r(d[7]),f=r(d[8]),b=r(d[9]),v=r(d[10]),_=r(d[11]),h=r(d[12]),M=(function(t){function b(){var t,n;(0,u.default)(this,b);for(var c=arguments.length,s=new Array(c),p=0;p<c;p++)s[p]=arguments[p];return(n=(0,o.default)(this,(t=(0,l.default)(b)).call.apply(t,[this].concat(s)))).accessibilityLabel='toolbar.accessibilityLabel.remoteMute',n.icon=f.IconMicDisabled,n.label='videothumbnail.domute',n.toggledLabel='videothumbnail.muted',n}return(0,c.default)(b,t),(0,n.default)(b,[{key:"_handleClick",value:function(){var t=this.props,u=t.dispatch,n=t.participantID;(0,s.sendAnalytics)((0,s.createRemoteVideoMenuButtonEvent)('mute.button',{participant_id:n})),u((0,p.openDialog)(h.MuteRemoteParticipantDialog,{participantID:n}))}},{key:"_isDisabled",value:function(){return this.props._audioTrackMuted}},{key:"_isToggled",value:function(){return this.props._audioTrackMuted}}]),b})(v.AbstractButton);e.default=M},1375,[3,4,5,6,9,10,905,531,548,887,970,903,1359]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),c=t(r(d[3])),o=t(r(d[4])),u=t(r(d[5])),s=r(d[6]),f=r(d[7]),p=r(d[8]),h=r(d[9]),b=r(d[10]),v=r(d[11]),y=(function(t){function s(){var t,n;(0,l.default)(this,s);for(var u=arguments.length,p=new Array(u),h=0;h<u;h++)p[h]=arguments[h];return(n=(0,c.default)(this,(t=(0,o.default)(s)).call.apply(t,[this].concat(p)))).accessibilityLabel='toolbar.accessibilityLabel.show',n.icon=f.IconPin,n.label='videothumbnail.show',n}return(0,u.default)(s,t),(0,n.default)(s,[{key:"_handleClick",value:function(){(0,this.props.dispatch)((0,p.pinParticipant)(this.props.participantID))}}]),s})(b.AbstractButton);var _=(0,s.translate)((0,h.connect)(function(t){return{visible:(0,v.shouldDisplayTileView)(t)}})(y));e.default=_},1376,[3,4,5,6,9,10,726,548,704,443,970,1262]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),o=r(d[1]),l=(0,o.createStyleSheet)({participantNameContainer:{alignItems:'center',borderBottomColor:o.ColorPalette.darkGrey,borderBottomWidth:1,flexDirection:'row',height:t.MD_ITEM_HEIGHT},participantNameLabel:{color:o.ColorPalette.lightGrey,flexShrink:1,fontSize:t.MD_FONT_SIZE,marginLeft:t.MD_ITEM_MARGIN_PADDING,opacity:.9}});e.default=l},1377,[531,522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),h=t(r(d[7])),s=r(d[8]),v=r(d[9]),p=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return h.default.createElement(v.BaseIndicator,{highlight:!1,icon:s.IconMicDisabled})}}]),n})(h.Component);e.default=p},1378,[2,3,4,5,6,9,10,59,548,539]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),h=t(r(d[7])),p=r(d[8]),s=r(d[9]),v=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return h.default.createElement(s.BaseIndicator,{highlight:!0,icon:p.IconDominantSpeaker})}}]),n})(h.Component);e.default=v},1379,[2,3,4,5,6,9,10,59,548,539]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),c=n(r(d[6])),h=t(r(d[7])),s=r(d[8]),v=r(d[9]),p=(function(t){function n(){return(0,u.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return h.default.createElement(v.BaseIndicator,{highlight:!1,icon:s.IconModerator})}}]),n})(h.Component);e.default=p},1380,[2,3,4,5,6,9,10,59,548,539]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),s=n(r(d[7])),h=r(d[8]),_=r(d[9]),p=r(d[10]),v=t(r(d[11])),y=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"_renderIndicator",value:function(){return s.default.createElement(_.BaseIndicator,{highlight:!0,icon:h.IconRaisedHand})}}]),n})(v.default),I=(0,p.connect)(v._mapStateToProps)(y);e.default=I},1381,[2,3,4,5,6,9,10,59,548,539,443,1382]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t,n){var u=(0,s.getParticipantById)(t,n.participantId);return{_raisedHand:u&&u.raisedHand}},e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=t(r(d[5])),p=r(d[6]),s=r(d[7]),c=(function(t){function p(){return(0,n.default)(this,p),(0,o.default)(this,(0,f.default)(p).apply(this,arguments))}return(0,l.default)(p,t),(0,u.default)(p,[{key:"render",value:function(){return this.props._raisedHand?this._renderIndicator():null}}]),p})(p.Component);e.default=c},1382,[3,4,5,6,9,10,59,704]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return n.default.createElement(c.BaseIndicator,{highlight:!1,icon:o.IconShareDesktop})};var n=t(r(d[1])),o=r(d[2]),c=r(d[3])},1383,[3,59,548,539]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),f=n(r(d[4])),o=n(r(d[5])),c=n(r(d[6])),h=t(r(d[7])),s=r(d[8]),v=r(d[9]),p=(function(t){function n(){return(0,u.default)(this,n),(0,f.default)(this,(0,o.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return h.default.createElement(v.BaseIndicator,{highlight:!1,icon:s.IconCameraDisabled})}}]),n})(h.Component);e.default=p},1384,[2,3,4,5,6,9,10,59,548,539]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.AVATAR_SIZE=void 0;var t=r(d[0]),o=r(d[1]),n=r(d[2]);e.AVATAR_SIZE=50;var l={displayNameContainer:{alignSelf:'center',bottom:0,flex:1,margin:4,position:'absolute'},filmstripNarrow:{flexDirection:'row',flexGrow:0,justifyContent:'flex-end',height:n.FILMSTRIP_SIZE},filmstripWide:{bottom:0,flexDirection:'column',flexGrow:0,position:'absolute',right:0,top:0},localThumbnail:{alignContent:'stretch',alignSelf:'stretch',aspectRatio:1,flexShrink:0,flexDirection:'row'},moderatorIndicatorContainer:{bottom:4,position:'absolute',right:4},scrollView:{flexGrow:0},thumbnail:{alignItems:'stretch',backgroundColor:o.ColorPalette.appBackground,borderColor:'#424242',borderRadius:3,borderStyle:'solid',borderWidth:1,flex:1,height:80,justifyContent:'center',margin:2,overflow:'hidden',position:'relative',width:80},thumbnailIndicatorContainer:{alignSelf:'stretch',bottom:4,flex:1,flexDirection:'row',left:4,position:'absolute'},thumbnailTopIndicatorContainer:{padding:4,position:'absolute',top:0},thumbnailTopLeftIndicatorContainer:{left:0},thumbnailTopRightIndicatorContainer:{right:0},tileView:{alignSelf:'center'},tileViewRows:{justifyContent:'center'},tileViewRow:{flexDirection:'row',justifyContent:'center'}};e.default=l,t.ColorSchemeRegistry.register('Thumbnail',{activeThumbnailTint:{backgroundColor:(0,t.schemeColor)('activeParticipantTint')},participantViewStyle:{backgroundColor:(0,t.schemeColor)('background')},thumbnailPinned:{borderColor:(0,t.schemeColor)('activeParticipantHighlight'),shadowColor:(0,t.schemeColor)('activeParticipantHighlight'),shadowOffset:{height:5,width:5},shadowRadius:5}})},1385,[438,522,1386]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TILE_ASPECT_RATIO=e.FILMSTRIP_SIZE=void 0;e.FILMSTRIP_SIZE=90;e.TILE_ASPECT_RATIO=1.7777777777777777},1386,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),s=n(r(d[4])),o=n(r(d[5])),h=n(r(d[6])),p=n(r(d[7])),c=t(r(d[8])),f=r(d[9]),_=r(d[10]),v=r(d[11]),y=r(d[12]),w=n(r(d[13])),k=n(r(d[14])),R=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,h.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,s.default)(n,[{key:"componentDidMount",value:function(){this._updateReceiverQuality()}},{key:"componentDidUpdate",value:function(){this._updateReceiverQuality()}},{key:"render",value:function(){var t=this.props,n=t._height,l=t._width,s=t.onClick,o=this._groupIntoRows(this._renderThumbnails(),this._getColumnCount());return c.default.createElement(f.ScrollView,{style:(0,u.default)({},k.default.tileView,{height:n,width:l})},c.default.createElement(f.TouchableWithoutFeedback,{onPress:s},c.default.createElement(f.View,{style:(0,u.default)({},k.default.tileViewRows,{minHeight:n,minWidth:l})},o)))}},{key:"_getColumnCount",value:function(){var t=this.props._participants.length;return this.props._aspectRatio===v.ASPECT_RATIO_NARROW?t>=3?2:1:4===t?2:Math.min(3,t)}},{key:"_getSortedParticipants",value:function(){var t,n=[],u=this.props._participants,l=Array.isArray(u),s=0;for(u=l?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var o;if(l){if(s>=u.length)break;o=u[s++]}else{if((s=u.next()).done)break;o=s.value}var h=o;h.local?t=h:n.push(h)}return t&&n.push(t),n}},{key:"_getTileDimensions",value:function(){var t,n=this.props,u=n._height,l=n._participants,s=n._width,o=this._getColumnCount(),h=u-20,p=s-20;return{height:(t=l.length/o>1?Math.min(p/o,h/2):Math.min(p/o,h))/1,width:t}}},{key:"_groupIntoRows",value:function(t,n){for(var u=[],l=0;l<t.length;l++)if(l%n==0){var s=t.slice(l,l+n);u.push(c.default.createElement(f.View,{key:u.length,style:k.default.tileViewRow},s))}return u}},{key:"_renderThumbnails",value:function(){var t={aspectRatio:1,flex:0,height:this._getTileDimensions().height,width:null};return this._getSortedParticipants().map(function(n){return c.default.createElement(w.default,{disableTint:!0,key:n.id,participant:n,renderDisplayName:!0,styleOverrides:t,tileView:!0})})}},{key:"_updateReceiverQuality",value:function(){var t=this._getTileDimensions(),n=t.height,u=t.width;this.props.dispatch((0,y.setTileViewDimensions)({thumbnailSize:{height:n,width:u}}))}}]),n})(c.Component);var b=(0,_.connect)(function(t){var n=t['features/base/responsive-ui'];return{_aspectRatio:n.aspectRatio,_height:n.clientHeight,_participants:t['features/base/participants'],_width:n.clientWidth}})(R);e.default=b},1387,[2,3,53,4,5,6,9,10,59,15,443,999,1350,1357,1385]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.notifyKickedOut=function(o,c){return function(l,p){l((0,t.openDialog)(t.AlertDialog,{contentKey:{key:'dialog.kickTitle',params:{participantDisplayName:(0,n.getParticipantDisplayName)(p,o.getId())}},onSubmit:c}))}};var t=r(d[0]),n=r(d[1])},1388,[531,704]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]);n.MiddlewareRegistry.register(function(n){return function(n){return function(c){switch(c.type){case t.CONFERENCE_JOINED:s.statsEmitter.startListeningForStats(c.conference)}return n(c)}}})},1389,[1101,443,1005]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),u=r(d[2]);t.MiddlewareRegistry.register(function(t){return function(c){return function(o){switch(o.type){case n.OPEN_DESKTOP_APP:(0,u.openDesktopApp)(t.getState())}return c(o)}}})},1390,[443,1391,1392]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.OPEN_WEB_APP=e.OPEN_DESKTOP_APP=void 0;e.OPEN_DESKTOP_APP='OPEN_DESKTOP_APP';e.OPEN_WEB_APP='OPEN_WEB_APP'},1391,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.generateDeepLinkingURL=function(){var n=interfaceConfig.APP_SCHEME||'org.jitsi.meet',p=window.location.href,f=new RegExp(t.URI_PROTOCOL_PATTERN,'gi');if('android'===o.Platform.OS){var s=p.replace(f,'').substr(2),c=interfaceConfig.ANDROID_APP_PACKAGE||'org.jitsi.meet';return"intent://"+s+"#Intent;scheme="+n+";package="+c+";end"}return p.replace(f,n+":")},e.getDeepLinkingPage=function(o){var t=o['features/base/conference'].room;if(o['features/deep-linking'].launchInWeb||!t||o['features/base/config'].disableDeepLinking||(0,p.isVpaasMeeting)(o))return Promise.resolve();if((0,n.isMobileBrowser)()){var c='object'==typeof interfaceConfig&&interfaceConfig.MOBILE_APP_PROMO;return Promise.resolve(void 0===c||Boolean(c)?f.DeepLinkingMobilePage:f.NoMobileApp)}return(0,s._openDesktopApp)(o).then(function(n){return n?f.DeepLinkingDesktopPage:void 0})},e.openDesktopApp=function(n){return(0,s._openDesktopApp)(n)};var n=r(d[0]),o=r(d[1]),t=r(d[2]),p=r(d[3]),f=r(d[4]),s=r(d[5])},1392,[931,539,506,1122,1393,1397]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DeepLinkingDesktopPage",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"DeepLinkingMobilePage",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"NoMobileApp",{enumerable:!0,get:function(){return o.default}});var t=n(r(d[1])),u=n(r(d[2])),o=n(r(d[3]))},1393,[3,1394,1395,1396]);
__d(function(g,r,i,a,m,e,d){},1394,[]);
__d(function(g,r,i,a,m,e,d){},1395,[]);
__d(function(g,r,i,a,m,e,d){},1396,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._openDesktopApp=function(o){return Promise.resolve(!1)}},1397,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);r(d[1]).MiddlewareRegistry.register(function(n){return function(s){return function(c){var u=s(c);if(c.type===t.UPDATE_DEVICE_LIST){var v=n.getState(),f=v['features/device-selection'].popupDialogData,o=(v['features/base/devices']||{}).availableDevices;f&&f.transport.sendEvent({name:'deviceListChanged',devices:o}),'undefined'!=typeof APP&&APP.API.notifyDeviceListChanged(o)}return u}}})},1398,[1399,443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1399,[1305,1306,1307]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=r(d[3]);n.MiddlewareRegistry.register(function(n){var p=n.dispatch,c=n.getState;return function(n){return function(u){switch(u.type){case s.SETTINGS_UPDATED:u.settings.displayName&&(0,t.isDialogOpen)(c,o.DisplayNamePrompt)&&p((0,t.hideDialog)(o.DisplayNamePrompt))}return n(u)}}})},1400,[531,443,910,1241]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),s=r(d[3]),o=r(d[4]),u=r(d[5]),c=r(d[6]),f=r(d[7]);o.MiddlewareRegistry.register(function(n){var o=n.dispatch,E=n.getState;return function(n){return function(v){switch(v.type){case u.TOGGLE_DOCUMENT_EDITING:if('undefined'==typeof APP){var _=!E()['features/etherpad'].editing;o((0,c.setDocumentEditingState)(_)),_?o((0,s.setActiveModalId)(f.SHARE_DOCUMENT_VIEW_ID)):E()['features/base/modal'].activeModalId===f.SHARE_DOCUMENT_VIEW_ID&&o((0,s.setActiveModalId)(void 0))}else APP.UI.emitEvent(t.default.ETHERPAD_CLICKED)}return n(v)}}}),o.StateListenerRegistry.register(function(t){return(0,n.getCurrentConference)(t)},function(t,n,s){var o=n.dispatch,u=n.getState;t&&t.addCommandListener("etherpad",function(t){var n,s=t.value,f=u()['features/base/config'].etherpad_base;f&&(n=new URL(s,f).toString());o((0,c.setDocumentUrl)(n))}),s&&o((0,c.setDocumentUrl)(void 0))})},1401,[3,1144,1101,1192,443,1402,1403,1404]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.TOGGLE_DOCUMENT_EDITING=e.SET_DOCUMENT_URL=e.SET_DOCUMENT_EDITING_STATUS=void 0;e.SET_DOCUMENT_EDITING_STATUS='SET_DOCUMENT_EDITING_STATUS';e.SET_DOCUMENT_URL='SET_DOCUMENT_URL';e.TOGGLE_DOCUMENT_EDITING='TOGGLE_DOCUMENT_EDITING'},1402,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setDocumentEditingState=function(n){return{type:t.SET_DOCUMENT_EDITING_STATUS,editing:n}},e.setDocumentUrl=function(n){return{type:t.SET_DOCUMENT_URL,documentUrl:n}},e.toggleDocument=function(){return{type:t.TOGGLE_DOCUMENT_EDITING}};var t=r(d[0])},1403,[1402]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SHARE_DOCUMENT_VIEW_ID=void 0;e.SHARE_DOCUMENT_VIEW_ID='SHARE_DOCUMENT_VIEW_ID'},1404,[]);
__d(function(g,r,i,a,m,e,d){},1405,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]),n=r(d[2]),l=r(d[3]),s=r(d[4]),c=r(d[5]),f=r(d[6]),u=r(d[7]),p=r(d[8]),h=t(r(d[9]));r(d[10]);var v,w=30,M=0;function b(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,l=arguments.length>2?arguments[2]:void 0,u=l.getState();if(void 0!==o){var v=(0,n.getParticipantById)(u,o);if(!v.local)if('moderator'===v.role)if((0,p.isFollowMeActive)(u)||l.dispatch((0,f.setFollowMeModerator)(o)),t.off)l.dispatch((0,f.setFollowMeModerator)());else{var w=u['features/follow-me'].state||{};if(l.dispatch((0,f.setFollowMeState)(t)),w.filmstripVisible!==t.filmstripVisible&&l.dispatch((0,s.setFilmstripVisible)('true'===t.filmstripVisible)),w.tileViewEnabled!==t.tileViewEnabled&&l.dispatch((0,c.setTileView)('true'===t.tileViewEnabled)),'undefined'!=typeof APP&&w.sharedDocumentVisible!==t.sharedDocumentVisible){var M='true'===t.sharedDocumentVisible,b=APP.UI.getSharedDocumentManager();b&&M!==u['features/etherpad'].editing&&b.toggleEtherpad()}var V=(0,n.getPinnedParticipant)(u),E=t.nextOnStage;void 0===E||V&&E===V.id||w.nextOnStage===t.nextOnStage?void 0===E&&V&&l.dispatch((0,n.pinParticipant)(null)):P(l,E)}else h.default.warn('Received follow-me command not from moderator')}}function P(t,o){(0,n.getParticipantById)(t.getState(),o)?(clearTimeout(v),M=0,t.dispatch((0,n.pinParticipant)(o))):v=setTimeout(function(){M>w?M=0:(M++,P(t,o))},1e3)}l.MiddlewareRegistry.register(function(t){return function(l){return function(s){switch(s.type){case o.CONFERENCE_WILL_JOIN:s.conference.addCommandListener(u.FOLLOW_ME_COMMAND,function(o,n){b(o.attributes,n,t)});break;case n.PARTICIPANT_LEFT:t.getState()['features/follow-me'].moderator===s.participant.id&&t.dispatch((0,f.setFollowMeModerator)())}return l(s)}}})},1406,[3,1121,704,443,1349,1407,1412,1414,1415,1416,1417]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},1407,[1408,1261,1409,1264,1262]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setParticipantsWithScreenShare=function(n){return{type:t.SCREEN_SHARE_PARTICIPANTS_UPDATED,participantIds:n}},e.setTileView=u,e.toggleTileView=function(){return function(t,c){var l=(0,n.shouldDisplayTileView)(c());t(u(!l))}};var t=r(d[0]),n=r(d[1]);function u(n){return{type:t.SET_TILE_VIEW,enabled:n}}},1408,[1261,1262]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"TileViewButton",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1409,[3,1410]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),s=t(r(d[5])),c=r(d[6]),b=r(d[7]),v=r(d[8]),f=r(d[9]),w=r(d[10]),_=r(d[11]),p=r(d[12]),V=r(d[13]),T=r(d[14]),h=t(r(d[15])),y=(function(t){function b(){var t,n;(0,l.default)(this,b);for(var s=arguments.length,c=new Array(s),v=0;v<s;v++)c[v]=arguments[v];return(n=(0,o.default)(this,(t=(0,u.default)(b)).call.apply(t,[this].concat(c)))).accessibilityLabel='toolbar.accessibilityLabel.tileView',n.icon=f.IconTileView,n.label='toolbar.enterTileView',n.toggledLabel='toolbar.exitTileView',n.tooltip='toolbar.tileViewToggle',n}return(0,s.default)(b,t),(0,n.default)(b,[{key:"_handleClick",value:function(){var t=this.props,l=t._tileViewEnabled,n=t.dispatch;(0,c.sendAnalytics)((0,c.createToolbarEvent)('tileview.button',{is_enabled:l}));var o=!l;h.default.debug("Tile view "+(o?'enable':'disable')),n((0,V.setTileView)(o))}},{key:"_isToggled",value:function(){return this.props._tileViewEnabled}}]),b})(p.AbstractButton);var E=(0,v.translate)((0,_.connect)(function(t,l){var n=(0,b.getFeatureFlag)(t,b.TILE_VIEW_ENABLED,!0),o=(0,w.getParticipantCount)(t)<2,u=l.visible,s=void 0===u?n&&!o:u;return{_tileViewEnabled:(0,T.shouldDisplayTileView)(t),visible:s}})(y));e.default=E},1410,[3,4,5,6,9,10,905,951,726,548,704,443,970,1408,1262,1411]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/video-layout');e.default=t},1411,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setFollowMeModerator=function(o){return{type:t.SET_FOLLOW_ME_MODERATOR,id:o}},e.setFollowMeState=function(o){return{type:t.SET_FOLLOW_ME_STATE,state:o}};var t=r(d[0])},1412,[1413]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_FOLLOW_ME_STATE=e.SET_FOLLOW_ME_MODERATOR=void 0;e.SET_FOLLOW_ME_MODERATOR='SET_FOLLOW_ME_MODERATOR';e.SET_FOLLOW_ME_STATE='SET_FOLLOW_ME_STATE'},1413,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.FOLLOW_ME_COMMAND=void 0;e.FOLLOW_ME_COMMAND='follow-me'},1414,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isFollowMeActive=function(t){var l=(0,o.toState)(t);return Boolean(l['features/follow-me'].moderator)};var o=r(d[0])},1415,[443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/follow-me');e.default=o},1416,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]),f=r(d[3]),u=r(d[4]);function o(t){var s=(0,n.getPinnedParticipant)(t);return{filmstripVisible:t['features/filmstrip'].visible,nextOnStage:s&&s.id,sharedDocumentVisible:t['features/etherpad'].editing,tileViewEnabled:(0,f.shouldDisplayTileView)(t)}}function l(s,f){var l=f.getState(),c=(0,t.getCurrentConference)(l);c&&(0,n.isLocalParticipantModerator)(l)&&('off'!==s?l['features/base/conference'].followMeEnabled&&c.sendCommand(u.FOLLOW_ME_COMMAND,{attributes:o(l)}):c.sendCommandOnce(u.FOLLOW_ME_COMMAND,{attributes:{off:!0}}))}s.StateListenerRegistry.register(function(t){return t['features/base/conference'].followMeEnabled},function(t,n){return l(t||'off',n)}),s.StateListenerRegistry.register(function(t){var s=(0,n.getPinnedParticipant)(t);return s?s.id:null},l),s.StateListenerRegistry.register(function(t){return t['features/etherpad'].editing},l),s.StateListenerRegistry.register(function(t){return t['features/filmstrip'].visible},l),s.StateListenerRegistry.register(function(t){return t['features/video-layout'].tileViewEnabled},l)},1417,[1101,704,443,1262,1414]);
__d(function(g,r,i,a,m,e,d){},1418,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]),n=r(d[2]),s=r(d[3]),p=r(d[4]),T=r(d[5]),A=r(d[6]),E=t(r(d[7]));r(d[8]),s.MiddlewareRegistry.register(function(t){return function(s){return function(I){var P=s(I);switch(I.type){case n.DOMINANT_SPEAKER_CHANGED:var o=t.getState(),D=(0,n.getLocalParticipant)(o);(0,p.isTestModeEnabled)(o)&&E.default.info("Dominant speaker changed event for: "+I.participant.id),D&&D.id!==I.participant.id&&t.dispatch((0,A.selectParticipantInLargeVideo)());break;case n.PARTICIPANT_JOINED:case n.PARTICIPANT_LEFT:case n.PIN_PARTICIPANT:case T.TRACK_ADDED:case T.TRACK_REMOVED:t.dispatch((0,A.selectParticipantInLargeVideo)());break;case c.CONFERENCE_JOINED:t.dispatch((0,A.selectParticipant)());break;case T.TRACK_UPDATED:if('videoType'in I.track){var N=t.getState(),_=(0,T.getTrackByJitsiTrack)(N['features/base/tracks'],I.track.jitsiTrack),f=N['features/large-video'].participantId;_.participantId===f&&t.dispatch((0,A.selectParticipant)())}}return P}}})},1419,[3,1101,704,443,1272,903,1420,1421,1422]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.selectParticipant=l,e.selectParticipantInLargeVideo=function(){return function(t,n){var c=n(),o=v(c),u=c['features/large-video'];o!==u.participantId&&(t({type:f.SELECT_LARGE_VIDEO_PARTICIPANT,participantId:o}),t(l()))}},e.updateKnownLargeVideoResolution=function(t){return{type:f.UPDATE_KNOWN_LARGE_VIDEO_RESOLUTION,resolution:t}};var t=r(d[0]),n=r(d[1]),c=r(d[2]),o=r(d[3]),u=r(d[4]),p=r(d[5]),f=r(d[6]);function l(){return function(c,f){var l=f(),s=l['features/base/conference'].conference;if(s){var v=(0,p.shouldDisplayTileView)(l)?(0,o.getParticipants)(l).map(function(t){return t.id}):[l['features/large-video'].participantId];try{s.selectParticipants(v)}catch(c){(0,n._handleParticipantError)(c),(0,t.sendAnalytics)((0,t.createSelectParticipantFailedEvent)(c)),(0,u.reportError)(c,"Failed to select participants "+v.toString())}}}}function s(t){for(var n=t.length-1;n>=0;--n){var o=t[n];if(!o.local&&o.mediaType===c.MEDIA_TYPE.VIDEO)return o}}function v(t){var n=t['features/base/participants'],c=n.find(function(t){return t.pinned}),o=c&&c.id;if(!o&&!(o=(c=n.find(function(t){return t.dominantSpeaker&&!t.local}))&&c.id)){var u=s(t['features/base/tracks']);if(!(o=u&&u.participantId)){for(var p=n.length;p>0&&!c;p--){var f=n[p-1];!f.botType&&(c=f)}o=c&&c.id}}return o}},1420,[905,1101,887,704,506,1407,1260]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/large-video');e.default=t},1421,[495]);
__d(function(g,r,i,a,m,e,d){},1422,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),t=r(d[2]),o=r(d[3]),c=r(d[4]),s=r(d[5]),E=r(d[6]),b=r(d[7]),f=r(d[8]),u=r(d[9]);function l(n,t,c){var s=n.dispatch,f=n.getState,l=c.error,p=f(),y=Boolean(p['features/base/conference'].membersOnly);if(l.name===o.JitsiConferenceErrors.MEMBERS_ONLY_ERROR){void 0===l.recoverable&&(l.recoverable=!0);var N=t(c);return s((0,u.openLobbyScreen)()),(0,b.isPrejoinPageEnabled)(p)&&!p['features/lobby'].knocking&&s((0,u.startKnocking)()),s((0,u.setPasswordJoinFailed)(y)),N}return s((0,u.hideLobbyScreen)()),l.name===o.JitsiConferenceErrors.CONFERENCE_ACCESS_DENIED&&s((0,E.showNotification)({appearance:E.NOTIFICATION_TYPE.ERROR,hideErrorSupportLink:!0,titleKey:'lobby.joinRejectedMessage'})),t(c)}function p(n,t,o){return(0,n.dispatch)((0,u.hideLobbyScreen)()),t(o)}function y(n,t){var o=n.dispatch,s=n.getState,E=t.id,b=s()['features/lobby'].knockingParticipants.find(function(n){return n.id===E});s()['features/base/config'].disableThirdPartyRequests||!b||b.loadableAvatarUrl||(0,c.getFirstLoadableAvatarUrl)(b).then(function(n){n&&o((0,u.participantIsKnockingOrUpdated)({loadableAvatarUrl:n,id:E}))})}function N(n,t,o){var s=o.dispatch,b=o.getState;if((null==n?void 0:n._id)&&'lobby-notify'===(null==t?void 0:t.type)){var f={descriptionArguments:{originParticipantName:(0,c.getParticipantDisplayName)(b,n._id),targetParticipantName:t.name},titleKey:'lobby.notificationTitle'};switch(t.event){case'LOBBY-ENABLED':f.descriptionKey="lobby.notificationLobby"+(t.value?'En':'Dis')+"abled";break;case'LOBBY-ACCESS-GRANTED':f.descriptionKey='lobby.notificationLobbyAccessGranted';break;case'LOBBY-ACCESS-DENIED':f.descriptionKey='lobby.notificationLobbyAccessDenied'}s((0,E.showNotification)(f,5e3))}}s.MiddlewareRegistry.register(function(n){return function(o){return function(c){switch(c.type){case t.CONFERENCE_FAILED:return l(n,o,c);case t.CONFERENCE_JOINED:return p(n,o,c);case f.KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED:var s=o(c);return y(n,c.participant),s}return o(c)}}}),s.StateListenerRegistry.register(function(n){return n['features/base/conference'].conference},function(t,c,s){var E=c.dispatch,b=c.getState;t&&!s&&(t.on(o.JitsiConferenceEvents.MEMBERS_ONLY_CHANGED,function(n){E((0,u.setLobbyModeEnabled)(n))}),t.on(o.JitsiConferenceEvents.LOBBY_USER_JOINED,function(n,t){E((0,u.participantIsKnockingOrUpdated)({id:n,name:t}))}),t.on(o.JitsiConferenceEvents.LOBBY_USER_UPDATED,function(t,o){E((0,u.participantIsKnockingOrUpdated)((0,n.default)({},o,{id:t})))}),t.on(o.JitsiConferenceEvents.LOBBY_USER_LEFT,function(n){E((0,u.knockingParticipantLeft)(n))}),t.on(o.JitsiConferenceEvents.ENDPOINT_MESSAGE_RECEIVED,function(n,t){return N(n,t,{dispatch:E,getState:b})}))})},1423,[3,53,1101,879,704,443,706,1304,1424,1425]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_PASSWORD_JOIN_FAILED=e.SET_KNOCKING_STATE=e.SET_LOBBY_MODE_ENABLED=e.KNOCKING_PARTICIPANT_LEFT=e.KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED=void 0;e.KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED='KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED';e.KNOCKING_PARTICIPANT_LEFT='KNOCKING_PARTICIPANT_LEFT';e.SET_LOBBY_MODE_ENABLED='SET_LOBBY_MODE_ENABLED';e.SET_KNOCKING_STATE='SET_KNOCKING_STATE';e.SET_PASSWORD_JOIN_FAILED='SET_PASSWORD_JOIN_FAILED'},1424,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var o={showDisableLobbyModeDialog:!0,showEnableLobbyModeDialog:!0};e.showDisableLobbyModeDialog=function(){return(0,b.openDialog)(n.DisableLobbyModeDialog)},e.showEnableLobbyModeDialog=function(){return(0,b.openDialog)(n.EnableLobbyModeDialog)};var b=r(d[0]),n=r(d[1]),l=r(d[2]);Object.keys(l).forEach(function(b){"default"!==b&&"__esModule"!==b&&(Object.prototype.hasOwnProperty.call(o,b)||Object.defineProperty(e,b,{enumerable:!0,get:function(){return l[b]}}))})},1425,[531,1426,1435]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DisableLobbyModeDialog",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"EnableLobbyModeDialog",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"KnockingParticipantList",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"LobbyModeButton",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(e,"LobbyScreen",{enumerable:!0,get:function(){return f.default}});var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),b=t(r(d[4])),f=t(r(d[5]))},1426,[3,1427,1428,1430,1432,1433]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=o(r(d[2])),l=o(r(d[3])),u=o(r(d[4])),b=o(r(d[5])),f=o(r(d[6])),s=o(r(d[7])),c=t(r(d[8])),y=r(d[9]),_=r(d[10]),v=r(d[11]),h=r(d[12]),D=(function(t){function o(t){var l;return(0,n.default)(this,o),(l=(0,u.default)(this,(0,b.default)(o).call(this,t)))._onDisableLobbyMode=l._onDisableLobbyMode.bind((0,s.default)((0,s.default)(l))),l}return(0,f.default)(o,t),(0,l.default)(o,[{key:"render",value:function(){return c.default.createElement(y.ConfirmDialog,{contentKey:"lobby.disableDialogContent",onSubmit:this._onDisableLobbyMode})}},{key:"_onDisableLobbyMode",value:function(){return this.props.dispatch((0,h.toggleLobbyMode)(!1)),!0}}]),o})(c.PureComponent),M=(0,_.translate)((0,v.connect)()(D));e.default=M},1427,[2,3,4,5,6,9,10,8,59,531,726,443,1425]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=l(r(d[2])),n=l(r(d[3])),u=l(r(d[4])),b=l(r(d[5])),f=l(r(d[6])),y=l(r(d[7])),c=t(r(d[8])),s=r(d[9]),p=r(d[10]),_=r(d[11]),h=r(d[12]),v=r(d[13]),E=r(d[14]),M=l(r(d[15])),L=(function(t){function l(t){var n;return(0,o.default)(this,l),(n=(0,u.default)(this,(0,b.default)(l).call(this,t)))._onEnableLobbyMode=n._onEnableLobbyMode.bind((0,y.default)((0,y.default)(n))),n}return(0,f.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){return c.default.createElement(_.CustomSubmitDialog,{okKey:"lobby.enableDialogSubmit",onSubmit:this._onEnableLobbyMode,titleKey:"lobby.dialogTitle"},c.default.createElement(s.View,{style:M.default.formWrapper},c.default.createElement(s.Text,null,this.props.t('lobby.enableDialogText'))))}},{key:"_onEnableLobbyMode",value:function(){return this.props.dispatch((0,E.toggleLobbyMode)(!0)),!0}}]),l})(c.PureComponent);var S=(0,h.translate)((0,v.connect)(function(t){return{_dialogStyles:p.ColorSchemeRegistry.get(t,'Dialog')}})(L));e.default=S},1428,[2,3,4,5,6,9,10,8,59,15,438,531,726,443,1425,1429]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t={button:{alignItems:'center',borderRadius:4,marginVertical:8,paddingVertical:10},contentWrapper:{alignItems:'center',flexDirection:'column',padding:32},dialogTitle:{fontSize:18,fontWeight:'bold',marginBottom:10},displayNameText:{fontWeight:'bold',marginVertical:10},editButton:{alignSelf:'flex-end',paddingHorizontal:10},editIcon:{color:'black',fontSize:16},field:{borderColor:"#B8C7E0",borderRadius:4,borderWidth:1,marginVertical:8,padding:8},fieldError:{color:r(d[0]).ColorPalette.warning,fontSize:10},fieldRow:{paddingTop:16},fieldLabel:{textAlign:'center'},formWrapper:{alignItems:'stretch',alignSelf:'stretch',paddingVertical:16},joiningMessage:{textAlign:'center'},loadingIndicator:{marginVertical:36},participantBox:{alignItems:'center',alignSelf:'stretch',borderColor:"#B8C7E0",borderRadius:4,borderWidth:1,marginVertical:18,paddingVertical:12},primaryButton:{alignSelf:'stretch',backgroundColor:'rgb(3, 118, 218)'},primaryButtonText:{color:'white'},secondaryButton:{alignSelf:'stretch',backgroundColor:'transparent'},secondaryText:{color:'rgba(0, 0, 0, .7)'},knockingParticipantList:{alignSelf:'stretch',backgroundColor:'rgba(22, 38, 55, 0.8)',flexDirection:'column'},knockingParticipantListButton:{borderRadius:4,marginHorizontal:3,paddingHorizontal:10,paddingVertical:5},knockingParticipantListDetails:{flex:1,marginLeft:10},knockingParticipantListEntry:{alignItems:'center',flexDirection:'row',padding:10},knockingParticipantListPrimaryButton:{backgroundColor:'rgb(3, 118, 218)'},knockingParticipantListSecondaryButton:{backgroundColor:'transparent'},knockingParticipantListText:{color:'white'}};e.default=t},1429,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),c=n(r(d[3])),u=n(r(d[4])),o=n(r(d[5])),s=n(r(d[6])),f=n(r(d[7])),p=n(r(d[8])),k=r(d[9]),y=r(d[10]),P=r(d[11]),T=r(d[12]),v=t(r(d[13])),E=n(r(d[14])),L=(function(t){function n(){return(0,c.default)(this,n),(0,o.default)(this,(0,s.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this,n=this.props,l=n._participants,c=n._visible,u=n.t;return c?p.default.createElement(k.ScrollView,{style:E.default.knockingParticipantList},l.map(function(n){return p.default.createElement(k.View,{key:n.id,style:E.default.knockingParticipantListEntry},p.default.createElement(y.Avatar,{displayName:n.name,size:48,url:n.loadableAvatarUrl}),p.default.createElement(k.View,{style:E.default.knockingParticipantListDetails},p.default.createElement(k.Text,{style:E.default.knockingParticipantListText},n.name),n.email&&p.default.createElement(k.Text,{style:E.default.knockingParticipantListText},n.email)),p.default.createElement(k.TouchableOpacity,{onPress:t._onRespondToParticipant(n.id,!0),style:[E.default.knockingParticipantListButton,E.default.knockingParticipantListPrimaryButton]},p.default.createElement(k.Text,{style:E.default.knockingParticipantListText},u('lobby.allow'))),p.default.createElement(k.TouchableOpacity,{onPress:t._onRespondToParticipant(n.id,!1),style:[E.default.knockingParticipantListButton,E.default.knockingParticipantListSecondaryButton]},p.default.createElement(k.Text,{style:E.default.knockingParticipantListText},u('lobby.reject'))))})):null}}]),n})(v.default);var _=(0,P.translate)((0,T.connect)(function(t){var n=(0,v.mapStateToProps)(t);return(0,l.default)({},n,{_participants:n._participants.slice(0,2)})})(L));e.default=_},1430,[2,3,53,4,5,6,9,10,59,15,544,726,443,1431,1429]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.mapStateToProps=function(t){var n=t['features/lobby'],o=n.knockingParticipants,u=n.lobbyEnabled;return{_participants:o,_visible:u&&(0,s.isLocalParticipantModerator)(t)&&Boolean(o.length)}},e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),p=t(r(d[5])),c=t(r(d[6])),f=r(d[7]),s=r(d[8]),v=r(d[9]),P=(function(t){function f(t){var o;return(0,n.default)(this,f),(o=(0,u.default)(this,(0,l.default)(f).call(this,t)))._onRespondToParticipant=o._onRespondToParticipant.bind((0,c.default)((0,c.default)(o))),o}return(0,p.default)(f,t),(0,o.default)(f,[{key:"_onRespondToParticipant",value:function(t,n){var o=this;return function(){o.props.dispatch((0,v.setKnockingParticipantApproval)(t,n))}}}]),f})(f.PureComponent);e.default=P},1431,[3,4,5,6,9,10,8,59,704,1425]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=_,e.default=void 0;var t=o(r(d[1])),l=o(r(d[2])),n=o(r(d[3])),b=o(r(d[4])),u=o(r(d[5])),c=r(d[6]),s=r(d[7]),f=r(d[8]),y=r(d[9]),p=r(d[10]),h=o(r(d[11])),v=r(d[12]),L=(function(o){function c(){var o,l;(0,t.default)(this,c);for(var u=arguments.length,s=new Array(u),y=0;y<u;y++)s[y]=arguments[y];return(l=(0,n.default)(this,(o=(0,b.default)(c)).call.apply(o,[this].concat(s)))).accessibilityLabel='toolbar.accessibilityLabel.lobbyButton',l.icon=f.IconMeetingUnlocked,l.label='toolbar.lobbyButtonEnable',l.toggledLabel='toolbar.lobbyButtonDisable',l.toggledIcon=f.IconMeetingLocked,l}return(0,u.default)(c,o),(0,l.default)(c,[{key:"_handleClick",value:function(){var o=this.props.dispatch;this._isToggled()?o((0,v.showDisableLobbyModeDialog)()):o((0,v.showEnableLobbyModeDialog)())}},{key:"_isToggled",value:function(){return this.props.lobbyEnabled}}]),c})(h.default);function _(o){var t=(0,c.getCurrentConference)(o),l=o['features/lobby'].lobbyEnabled,n=o['features/base/config'].hideLobbyButton;return{lobbyEnabled:l,visible:t&&t.isLobbySupported()&&(0,y.isLocalParticipantModerator)(o)&&!n}}var M=(0,s.translate)((0,p.connect)(_)(L));e.default=M},1432,[3,4,5,6,9,10,1101,726,548,704,443,972,1425]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),o=l(r(d[3])),u=l(r(d[4])),s=l(r(d[5])),f=l(r(d[6])),c=l(r(d[7])),y=r(d[8]),p=r(d[9]),h=r(d[10]),T=r(d[11]),E=r(d[12]),b=r(d[13]),_=r(d[14]),x=t(r(d[15])),v=l(r(d[16])),w=(function(t){function l(){return(0,n.default)(this,l),(0,u.default)(this,(0,s.default)(l).apply(this,arguments))}return(0,f.default)(l,t),(0,o.default)(l,[{key:"render",value:function(){var t=this.props,l=t._meetingName,n=t.t;return c.default.createElement(h.CustomDialog,{onCancel:this._onCancel,style:v.default.contentWrapper},c.default.createElement(y.Text,{style:v.default.dialogTitle},n(this._getScreenTitleKey())),c.default.createElement(y.Text,{style:v.default.secondaryText},l),this._renderContent())}},{key:"_renderJoining",value:function(){return c.default.createElement(c.default.Fragment,null,c.default.createElement(b.LoadingIndicator,{color:"black",style:v.default.loadingIndicator}),c.default.createElement(y.Text,{style:v.default.joiningMessage},this.props.t('lobby.joiningMessage')),this._renderStandardButtons())}},{key:"_renderParticipantForm",value:function(){var t=this.props.t,l=this.state,n=l.displayName,o=l.email;return c.default.createElement(y.View,{style:v.default.formWrapper},c.default.createElement(y.Text,{style:v.default.fieldLabel},t('lobby.nameField')),c.default.createElement(y.TextInput,{onChangeText:this._onChangeDisplayName,style:v.default.field,value:n}),c.default.createElement(y.Text,{style:v.default.fieldLabel},t('lobby.emailField')),c.default.createElement(y.TextInput,{onChangeText:this._onChangeEmail,style:v.default.field,value:o}))}},{key:"_renderParticipantInfo",value:function(){var t=this.state,l=t.displayName,n=t.email;return c.default.createElement(y.View,{style:v.default.participantBox},c.default.createElement(y.TouchableOpacity,{onPress:this._onEnableEdit,style:v.default.editButton},c.default.createElement(E.Icon,{src:E.IconEdit,style:v.default.editIcon})),c.default.createElement(p.Avatar,{participantId:this.props._participantId,size:64}),c.default.createElement(y.Text,{style:v.default.displayNameText},l),Boolean(n)&&c.default.createElement(y.Text,{style:v.default.secondaryText},n))}},{key:"_renderPasswordForm",value:function(){var t=this.props,l=t._passwordJoinFailed,n=t.t;return c.default.createElement(y.View,{style:v.default.formWrapper},c.default.createElement(y.Text,{style:v.default.fieldLabel},this.props.t('lobby.passwordField')),c.default.createElement(y.TextInput,{autoCapitalize:"none",autoCompleteType:"off",onChangeText:this._onChangePassword,secureTextEntry:!0,style:v.default.field,value:this.state.password}),l&&c.default.createElement(y.Text,{style:v.default.fieldError},n('lobby.invalidPassword')))}},{key:"_renderPasswordJoinButtons",value:function(){var t=this.props.t;return c.default.createElement(c.default.Fragment,null,c.default.createElement(y.TouchableOpacity,{disabled:!this.state.password,onPress:this._onJoinWithPassword,style:[v.default.button,v.default.primaryButton]},c.default.createElement(y.Text,{style:v.default.primaryButtonText},t('lobby.passwordJoinButton'))),c.default.createElement(y.TouchableOpacity,{onPress:this._onSwitchToKnockMode,style:[v.default.button,v.default.secondaryButton]},c.default.createElement(y.Text,null,t('lobby.backToKnockModeButton'))))}},{key:"_renderStandardButtons",value:function(){var t=this.props,l=t._knocking,n=t.t;return c.default.createElement(c.default.Fragment,null,l||c.default.createElement(y.TouchableOpacity,{disabled:!this.state.displayName,onPress:this._onAskToJoin,style:[v.default.button,v.default.primaryButton]},c.default.createElement(y.Text,{style:v.default.primaryButtonText},n('lobby.knockButton'))),c.default.createElement(y.TouchableOpacity,{onPress:this._onSwitchToPasswordMode,style:[v.default.button,v.default.secondaryButton]},c.default.createElement(y.Text,null,n('lobby.enterPasswordButton'))))}}]),l})(x.default),k=(0,T.translate)((0,_.connect)(x._mapStateToProps)(w));e.default=k},1433,[2,3,4,5,6,9,10,59,15,544,531,726
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t){var n=(0,f.getLocalParticipant)(t),o=null==n?void 0:n.id,s=t['features/lobby'],l=s.knocking,u=s.passwordJoinFailed;return{_knocking:l,_meetingName:(0,_.getConferenceName)(t),_participantEmail:null==n?void 0:n.email,_participantId:o,_participantName:null==n?void 0:n.name,_passwordJoinFailed:u}},e.default=e.SCREEN_STATES=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),p=n(r(d[7])),h=t(r(d[8])),_=r(d[9]),f=r(d[10]),S=r(d[11]),w=r(d[12]),E=r(d[13]),k={EDIT:1,PASSWORD:2,VIEW:3};e.SCREEN_STATES=k;var v=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,l.default)(this,(0,u.default)(n).call(this,t))).state={displayName:t._participantName||'',email:t._participantEmail||'',password:'',passwordJoinFailed:!1,screenState:t._participantName?k.VIEW:k.EDIT},s._onAskToJoin=s._onAskToJoin.bind((0,p.default)((0,p.default)(s))),s._onCancel=s._onCancel.bind((0,p.default)((0,p.default)(s))),s._onChangeDisplayName=s._onChangeDisplayName.bind((0,p.default)((0,p.default)(s))),s._onChangeEmail=s._onChangeEmail.bind((0,p.default)((0,p.default)(s))),s._onChangePassword=s._onChangePassword.bind((0,p.default)((0,p.default)(s))),s._onEnableEdit=s._onEnableEdit.bind((0,p.default)((0,p.default)(s))),s._onJoinWithPassword=s._onJoinWithPassword.bind((0,p.default)((0,p.default)(s))),s._onSwitchToKnockMode=s._onSwitchToKnockMode.bind((0,p.default)((0,p.default)(s))),s._onSwitchToPasswordMode=s._onSwitchToPasswordMode.bind((0,p.default)((0,p.default)(s))),s}return(0,c.default)(n,t),(0,s.default)(n,[{key:"_getScreenTitleKey",value:function(){var t=this.state.screenState===k.PASSWORD;return!t&&this.props._knocking?'lobby.joiningTitle':t?'lobby.enterPasswordTitle':'lobby.joinTitle'}},{key:"_onAskToJoin",value:function(){return this.setState({password:''}),this.props.dispatch((0,E.startKnocking)()),!1}},{key:"_onCancel",value:function(){return this.props.dispatch((0,E.cancelKnocking)()),!0}},{key:"_onChangeDisplayName",value:function(t){var n=this,o=(0,S.getFieldValue)(t);this.setState({displayName:o},function(){n.props.dispatch((0,w.updateSettings)({displayName:o}))})}},{key:"_onChangeEmail",value:function(t){var n=this,o=(0,S.getFieldValue)(t);this.setState({email:o},function(){n.props.dispatch((0,w.updateSettings)({email:o}))})}},{key:"_onChangePassword",value:function(t){this.setState({password:(0,S.getFieldValue)(t)})}},{key:"_onEnableEdit",value:function(){this.setState({screenState:k.EDIT})}},{key:"_onJoinWithPassword",value:function(){this.setState({passwordJoinFailed:!1}),this.props.dispatch((0,E.joinWithPassword)(this.state.password))}},{key:"_onSwitchToKnockMode",value:function(){this.setState({password:'',screenState:this.state.displayName?k.VIEW:k.EDIT}),this.props.dispatch((0,E.setPasswordJoinFailed)(!1))}},{key:"_onSwitchToPasswordMode",value:function(){this.setState({screenState:k.PASSWORD})}},{key:"_renderContent",value:function(){var t=this.props._knocking,n=this.state.screenState;return n!==k.PASSWORD&&t?this._renderJoining():h.default.createElement(h.default.Fragment,null,n===k.VIEW&&this._renderParticipantInfo(),n===k.EDIT&&this._renderParticipantForm(),n===k.PASSWORD&&this._renderPasswordForm(),(n===k.VIEW||n===k.EDIT)&&this._renderStandardButtons(),n===k.PASSWORD&&this._renderPasswordJoinButtons())}}],[{key:"getDerivedStateFromProps",value:function(t,n){return t._passwordJoinFailed&&!n.passwordJoinFailed?{password:'',passwordJoinFailed:!0}:null}}]),n})(h.PureComponent);e.default=v},1434,[2,3,4,5,6,9,10,8,59,1101,704,539,910,1425]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.cancelKnocking=function(){return function(n){return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:if('undefined'==typeof APP){t.next=4;break}return APP.API.notifyReadyToClose(),n((0,o.maybeRedirectToWelcomePage)()),t.abrupt("return");case 4:n((0,o.appNavigate)(void 0));case 5:case"end":return t.stop()}},null,this)}},e.hideLobbyScreen=function(){return(0,u.hideDialog)(l.LobbyScreen)},e.joinWithPassword=function(n){return function(o,u){var s;return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:s=(0,c.getCurrentConference)(u),o((0,c.setPassword)(s,s.join,n));case 2:case"end":return t.stop()}},null,this)}},e.knockingParticipantLeft=function(n){return{id:n,type:f.KNOCKING_PARTICIPANT_LEFT}},e.openLobbyScreen=function(){return(0,u.openDialog)(l.LobbyScreen,{},!0)},e.participantIsKnockingOrUpdated=function(n){return{participant:n,type:f.KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED}},e.setKnockingParticipantApproval=function(n,o){return function(u,s){var f;return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:(f=(0,c.getCurrentConference)(s))&&(o?f.lobbyApproveAccess(n):f.lobbyDenyAccess(n));case 2:case"end":return t.stop()}},null,this)}},e.setKnockingState=p,e.setLobbyModeEnabled=function(n){return{enabled:n,type:f.SET_LOBBY_MODE_ENABLED}},e.setPasswordJoinFailed=function(n){return{failed:n,type:f.SET_PASSWORD_JOIN_FAILED}},e.startKnocking=function(){return function(n,o){var u,f,l;return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:u=o(),f=u['features/base/conference'].membersOnly,l=(0,s.getLocalParticipant)(u),n((0,c.conferenceWillJoin)(f)),f.joinLobby(l.name,l.email),n(p(!0));case 6:case"end":return t.stop()}},null,this)}},e.toggleLobbyMode=function(n){return function(o,u){var s;return t.default.async(function(t){for(;;)switch(t.prev=t.next){case 0:s=(0,c.getCurrentConference)(u),n?s.enableLobby():s.disableLobby();case 2:case"end":return t.stop()}},null,this)}};var t=n(r(d[1])),o=r(d[2]),c=r(d[3]),u=r(d[4]),s=r(d[5]),f=r(d[6]),l=r(d[7]);function p(n){return{knocking:n,type:f.SET_KNOCKING_STATE}}},1435,[3,270,1100,1101,531,704,1424,1436]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1436,[1426]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),f=r(d[4]),s=r(d[5]);o.MiddlewareRegistry.register(function(t){return function(o){return function(I){switch(I.type){case n.PARTICIPANT_JOINED:var y=o(I),T=I.participant,p=t.dispatch,N=t.getState;if(T.local||(0,s.joinLeaveNotificationsDisabled)()||p((0,c.showParticipantJoinedNotification)((0,n.getParticipantDisplayName)(N,T.id))),'object'==typeof interfaceConfig&&!interfaceConfig.DISABLE_FOCUS_INDICATOR&&T.role===n.PARTICIPANT_ROLE.MODERATOR){var l=(0,n.getParticipantDisplayName)(N,T.id);p((0,c.showNotification)({descriptionArguments:{to:l||'$t(notify.somebody)'},descriptionKey:'notify.grantedTo',titleKey:'notify.somebody',title:l},f.NOTIFICATION_TIMEOUT))}return y;case n.PARTICIPANT_LEFT:if(!(0,s.joinLeaveNotificationsDisabled)()){var A=(0,n.getParticipantById)(t.getState(),I.participant.id);'object'==typeof interfaceConfig&&A&&!A.local&&t.dispatch((0,c.showNotification)({descriptionKey:'notify.disconnected',titleKey:'notify.somebody',title:A.name},f.NOTIFICATION_TIMEOUT))}return o(I);case n.PARTICIPANT_UPDATED:if('undefined'==typeof interfaceConfig||interfaceConfig.DISABLE_FOCUS_INDICATOR)return o(I);var O=I.participant,u=O.id,C=O.role,P=t.getState(),R=(0,n.getParticipantById)(P,u),D=null==R?void 0:R.role;if(D&&D!==C&&C===n.PARTICIPANT_ROLE.MODERATOR){var _=(0,n.getParticipantDisplayName)(P,u);t.dispatch((0,c.showNotification)({descriptionArguments:{to:_||'$t(notify.somebody)'},descriptionKey:'notify.grantedTo',titleKey:'notify.somebody',title:_},f.NOTIFICATION_TIMEOUT))}return o(I)}return o(I)}}}),o.StateListenerRegistry.register(function(n){return(0,t.getCurrentConference)(n)},function(t,n){var o=n.dispatch;t||o((0,c.clearNotifications)())})},1437,[1101,704,443,707,722,876]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]),t=r(d[2]),s=[n.JitsiConferenceErrors.CONFERENCE_ACCESS_DENIED,n.JitsiConferenceErrors.CONFERENCE_DESTROYED,n.JitsiConferenceErrors.CONNECTION_ERROR];o.StateListenerRegistry.register(function(n){var o=n['features/base/conference'].error,t=n['features/base/config'].error,s=n['features/base/connection'].error;return t||s||o},function(n,o){var E=o.dispatch;n&&-1===s.indexOf(n.name)&&void 0===n.recoverable&&E((0,t.setFatalError)(n))})},1438,[879,443,1089]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),c=r(d[3]),s=r(d[4]),f=r(d[5]),u=r(d[6]);function _(t,n,c){var f=t.dispatch,u=t.getState,_=n(c),l=[],E=u()['features/recent-list'],R=Array.isArray(E),S=0;for(E=R?E:E["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(R){if(S>=E.length)break;b=E[S++]}else{if((S=E.next()).done)break;b=S.value}var h=b.conference,p=(0,s.parseURIString)(h),v=void 0;p&&(v=p.host)&&l.push(v)}return l.length&&f((0,o.addKnownDomains)(l)),_}function l(t,o,c){var s,u=t.dispatch,_=t.getState;_()['features/base/config'].doNotStoreRoom||(s='undefined'==typeof APP?c.conference[n.JITSI_CONFERENCE_URL_KEY]:_()['features/base/connection'].locationURL,u((0,f._updateConferenceDuration)(s)));return o(c)}function E(t,n,c){var s=t.dispatch,u=t.getState;if(!u()['features/base/config'].doNotStoreRoom&&c.room){var _=u()['features/base/connection'].locationURL;_&&(s((0,f._storeCurrentConference)(_)),s((0,o.addKnownDomains)(_.host)))}return n(c)}c.MiddlewareRegistry.register(function(o){return function(c){return function(s){if((0,u.isRecentListEnabled)())switch(s.type){case t.APP_WILL_MOUNT:return _(o,c,s);case n.CONFERENCE_WILL_LEAVE:return l(o,c,s);case n.SET_ROOM:return E(o,c,s)}return c(s)}}})},1439,[956,1101,919,443,506,1440,1442]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.deleteRecentListEntry=function(t){return{type:n.DELETE_RECENT_LIST_ENTRY,entryId:t}},e._storeCurrentConference=function(t){return{type:n._STORE_CURRENT_CONFERENCE,locationURL:t}},e._updateConferenceDuration=function(t){return{type:n._UPDATE_CONFERENCE_DURATION,locationURL:t}};var n=r(d[0])},1440,[1441]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._UPDATE_CONFERENCE_DURATION=e._STORE_CURRENT_CONFERENCE=e.DELETE_RECENT_LIST_ENTRY=void 0;e.DELETE_RECENT_LIST_ENTRY='DELETE_RECENT_LIST_ENTRY';e._STORE_CURRENT_CONFERENCE='_STORE_CURRENT_CONFERENCE';e._UPDATE_CONFERENCE_DURATION='_UPDATE_CONFERENCE_DURATION'},1441,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.toDisplayableList=function(t,o,s){var u=n.NavigateSectionList.createSection,c=u(o('dateUtils.today'),'today'),f=u(o('dateUtils.yesterday'),'yesterday'),D=u(o('dateUtils.earlier'),'earlier'),y=(new Date).toDateString(),h=new Date;h.setDate(h.getDate()-1);for(var v=h.toDateString(),p=t,M=Array.isArray(p),S=0,p=M?p:p["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var b;if(M){if(S>=p.length)break;b=p[S++]}else{if((S=p.next()).done)break;b=S.value}var w=b,U=new Date(w.date).toDateString(),L=l(w,s,o);U===y?c.data.push(L):U===v?f.data.push(L):D.data.push(L)}var k=[];c.data.length&&(c.data.reverse(),k.push(c));f.data.length&&(f.data.reverse(),k.push(f));D.data.length&&(D.data.reverse(),k.push(D));return k},e.isRecentListEnabled=function(){return!0};var t=r(d[0]),n=r(d[1]),o=r(d[2]);function l(t,n,l){var c=(0,o.parseURIString)(t.conference),f=c.protocol+"//"+c.host===n?null:c.host;return{colorBase:f,id:{date:t.date,url:t.conference},key:"key-"+t.conference+"-"+t.date,lines:[u(t.date,l),s(t.duration),f],title:(0,o.safeDecodeURIComponent)(c.room),url:t.conference}}function s(n){return n?(0,t.getLocalizedDurationFormatter)(n):null}function u(n,o){var l=(0,t.getLocalizedDateFormatter)(n),s=new Date(n),u=s.getTime(),c=new Date,f=(new Date).setHours(0,0,0,0),D=f-864e5;return u>=f?l.fromNow():u>=D?o('dateUtils.yesterday'):s.getFullYear()!==c.getFullYear()?l.format('ddd, MMMM DD h:mm A, gggg'):l.format('ddd, MMMM DD h:mm A')}},1442,[726,539,506]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),s=r(d[3]),_=t(r(d[4])),c=r(d[5]),N=r(d[6]),S=r(d[7]),I=r(d[8]),E=r(d[9]),R=r(d[10]),O=r(d[11]),D=r(d[12]);function u(t,n){var o=t.getMode()===_.default.constants.recording.mode.STREAM;switch(t.getError()){case _.default.constants.recording.error.SERVICE_UNAVAILABLE:n((0,E.showRecordingError)({descriptionKey:'recording.unavailable',descriptionArguments:{serviceName:o?'$t(liveStreaming.serviceName)':'$t(recording.serviceName)'},titleKey:o?'liveStreaming.unavailableTitle':'recording.unavailableTitle'}));break;case _.default.constants.recording.error.RESOURCE_CONSTRAINT:n((0,E.showRecordingError)({descriptionKey:o?'liveStreaming.busy':'recording.busy',titleKey:o?'liveStreaming.busyTitle':'recording.busyTitle'}));break;default:n((0,E.showRecordingError)({descriptionKey:o?'liveStreaming.error':'recording.error',titleKey:o?'liveStreaming.failedToStart':'recording.failedToStart'}))}}N.StateListenerRegistry.register(function(t){return(0,s.getCurrentConference)(t)},function(t,n){var o=n.dispatch;t||o((0,E.clearRecordingSessions)())}),N.MiddlewareRegistry.register(function(t){var N=t.dispatch,l=t.getState;return function(t){return function(f){var A;f.type===I.RECORDING_SESSION_UPDATED&&(A=(0,O.getSessionById)(l(),f.sessionData.id));var v=t(f);switch(f.type){case o.APP_WILL_MOUNT:N((0,S.registerSound)(R.LIVE_STREAMING_OFF_SOUND_ID,D.LIVE_STREAMING_OFF_SOUND_FILE)),N((0,S.registerSound)(R.LIVE_STREAMING_ON_SOUND_ID,D.LIVE_STREAMING_ON_SOUND_FILE)),N((0,S.registerSound)(R.RECORDING_OFF_SOUND_ID,D.RECORDING_OFF_SOUND_FILE)),N((0,S.registerSound)(R.RECORDING_ON_SOUND_ID,D.RECORDING_ON_SOUND_FILE));break;case o.APP_WILL_UNMOUNT:N((0,S.unregisterSound)(R.LIVE_STREAMING_OFF_SOUND_ID)),N((0,S.unregisterSound)(R.LIVE_STREAMING_ON_SOUND_ID)),N((0,S.unregisterSound)(R.RECORDING_OFF_SOUND_ID)),N((0,S.unregisterSound)(R.RECORDING_ON_SOUND_ID));break;case s.CONFERENCE_WILL_JOIN:f.conference.on(_.JitsiConferenceEvents.RECORDER_STATE_CHANGED,function(t){t&&(t.getID()&&N((0,E.updateRecordingSessionData)(t)),t.getError()&&u(t,N))});break;case I.RECORDING_SESSION_UPDATED:var C=l()['features/base/config'],L=C.iAmRecorder,T=C.iAmSipGateway,F=C.disableRecordAudioNotification,U=C.recordingLimit;if(L&&!T)break;var y=(0,O.getSessionById)(l(),f.sessionData.id),p=y.initiator,G=y.mode,b=y.terminator,M=_.JitsiRecordingConstants.status,h=M.PENDING,w=M.OFF,P=M.ON;if(y.status!==h||A&&A.status===h){if(y.status!==h)if(N((0,E.hidePendingRecordingNotification)(G)),y.status!==P||A&&A.status===P){if(y.status===w&&(!A||A.status!==w)){N((0,E.showStoppedRecordingNotification)(G,b&&(0,c.getParticipantDisplayName)(l,b.getId())));var V,k,J=0;if(A&&A.timestamp&&(J=Date.now()/1e3-A.timestamp),(0,n.sendAnalytics)((0,n.createRecordingEvent)('stop',G,J)),F)break;G===_.JitsiRecordingConstants.mode.FILE?(V=R.RECORDING_OFF_SOUND_ID,k=R.RECORDING_ON_SOUND_ID):G===_.JitsiRecordingConstants.mode.STREAM&&(V=R.LIVE_STREAMING_OFF_SOUND_ID,k=R.LIVE_STREAMING_ON_SOUND_ID),V&&k&&(N((0,S.stopSound)(k)),N((0,S.playSound)(V)))}}else{if(p){var K=p&&(0,c.getParticipantDisplayName)(l,p.getId());K&&N((0,E.showStartedRecordingNotification)(G,K))}else'object'==typeof U&&N((0,E.showRecordingLimitNotification)(G));if((0,n.sendAnalytics)((0,n.createRecordingEvent)('start',G)),F)break;var B;G===_.JitsiRecordingConstants.mode.FILE?B=R.RECORDING_ON_SOUND_ID:G===_.JitsiRecordingConstants.mode.STREAM&&(B=R.LIVE_STREAMING_ON_SOUND_ID),B&&N((0,S.playSound)(B))}}else N((0,E.showPendingRecordingNotification)(G))}return v}}})},1443,[2,905,956,1101,879,704,443,962,1444,1445,1447,1448,1449]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_STREAM_KEY=e.SET_PENDING_RECORDING_NOTIFICATION_UID=e.RECORDING_SESSION_UPDATED=e.CLEAR_RECORDING_SESSIONS=void 0;e.CLEAR_RECORDING_SESSIONS='CLEAR_RECORDING_SESSIONS';e.RECORDING_SESSION_UPDATED='RECORDING_SESSION_UPDATED';e.SET_PENDING_RECORDING_NOTIFICATION_UID='SET_PENDING_RECORDING_NOTIFICATION_UID';e.SET_STREAM_KEY='SET_STREAM_KEY'},1444,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var o={showRecordingLimitNotification:!0};e.showRecordingLimitNotification=function(t){return function(o,f){var l,s,u=t===n.default.constants.recording.mode.STREAM;u?(l='liveStreaming.limitNotificationDescriptionNative',s='dialog.liveStreaming'):(l='recording.limitNotificationDescriptionNative',s='dialog.recording');var p=f()['features/base/config'].recordingLimit,v=void 0===p?{}:p,N=v.limit,y=v.appName;return o((0,c.showNotification)({descriptionArguments:{limit:N,app:y},descriptionKey:l,titleKey:s,maxLines:2},1e4))}};var n=t(r(d[1])),c=r(d[2]),f=r(d[3]);Object.keys(f).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}}))})},1445,[3,879,706,1446]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.clearRecordingSessions=function(){return{type:u.CLEAR_RECORDING_SESSIONS}},e.hidePendingRecordingNotification=function(t){return function(n,o){var c=o()['features/recording'].pendingNotificationUids,u=c[t];u&&(n((0,s.hideNotification)(u)),n(f(void 0,t)))}},e.setLiveStreamKey=function(t){return{type:u.SET_STREAM_KEY,streamKey:t}},e.showPendingRecordingNotification=function(t){return function(n){var u=t===c.default.constants.recording.mode.STREAM,l=u?{descriptionKey:'liveStreaming.pending',titleKey:'dialog.liveStreaming'}:{descriptionKey:'recording.pending',titleKey:'dialog.recording'},S=(0,s.showNotification)((0,o.default)({isDismissAllowed:!1},l));n(S),n(f(S.uid,t))}},e.showRecordingError=function(t){return(0,s.showErrorNotification)(t)},e.showStoppedRecordingNotification=function(t,n){var o=t===c.default.constants.recording.mode.STREAM,u={name:n},f=o?{descriptionKey:n?'liveStreaming.offBy':'liveStreaming.off',descriptionArguments:u,titleKey:'dialog.liveStreaming'}:{descriptionKey:n?'recording.offBy':'recording.off',descriptionArguments:u,titleKey:'dialog.recording'};return(0,s.showNotification)(f,s.NOTIFICATION_TIMEOUT)},e.showStartedRecordingNotification=function(t,n){var o=t===c.default.constants.recording.mode.STREAM,u={name:n},f=o?{descriptionKey:'liveStreaming.onBy',descriptionArguments:u,titleKey:'dialog.liveStreaming'}:{descriptionKey:'recording.onBy',descriptionArguments:u,titleKey:'dialog.recording'};return(0,s.showNotification)(f,s.NOTIFICATION_TIMEOUT)},e.updateRecordingSessionData=function(t){var n=t.getStatus(),o=n===c.JitsiRecordingConstants.status.ON?Date.now()/1e3:void 0;return{type:u.RECORDING_SESSION_UPDATED,sessionData:{error:t.getError(),id:t.getID(),initiator:t.getInitiator(),liveStreamViewURL:t.getLiveStreamViewURL(),mode:t.getMode(),status:n,terminator:t.getTerminator(),timestamp:o}}};var o=n(r(d[2])),c=t(r(d[3])),s=r(d[4]),u=r(d[5]);function f(t,n){return{type:u.SET_PENDING_RECORDING_NOTIFICATION_UID,streamType:n,uid:t}}},1446,[2,3,53,879,706,1444]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.RECORDING_STATUS_PRIORITIES=e.RECORDING_TYPES=e.RECORDING_ON_SOUND_ID=e.RECORDING_OFF_SOUND_ID=e.LIVE_STREAMING_ON_SOUND_ID=e.LIVE_STREAMING_OFF_SOUND_ID=void 0;var _=r(d[0]);e.LIVE_STREAMING_OFF_SOUND_ID='LIVE_STREAMING_OFF_SOUND';e.LIVE_STREAMING_ON_SOUND_ID='LIVE_STREAMING_ON_SOUND';e.RECORDING_OFF_SOUND_ID='RECORDING_OFF_SOUND';e.RECORDING_ON_SOUND_ID='RECORDING_ON_SOUND';e.RECORDING_TYPES={JITSI_REC_SERVICE:'recording-service',DROPBOX:'dropbox'};var O=[_.JitsiRecordingConstants.status.OFF,_.JitsiRecordingConstants.status.PENDING,_.JitsiRecordingConstants.status.ON];e.RECORDING_STATUS_PRIORITIES=O},1447,[879]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getActiveSession=function(n,s){var o=n['features/recording'].sessionDatas,u=t.JitsiRecordingConstants.status;return o.find(function(t){return t.mode===s&&(t.status===u.ON||t.status===u.PENDING)})},e.getRecordingDurationEstimation=function(t){return Math.floor((t||0)/10)},e.getSessionById=function(t,n){return t['features/recording'].sessionDatas.find(function(t){return t.id===n})},e.getSessionStatusToShow=function(t,s){var o,u=t['features/recording'].sessionDatas;if(Array.isArray(u))for(var f=u,c=Array.isArray(f),S=0,f=c?f:f["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var I;if(c){if(S>=f.length)break;I=f[S++]}else{if((S=f.next()).done)break;I=S.value}var R=I;R.mode===s&&(!o||n.RECORDING_STATUS_PRIORITIES.indexOf(R.status)>n.RECORDING_STATUS_PRIORITIES.indexOf(o))&&(o=R.status)}return o};var t=r(d[0]),n=r(d[1])},1448,[879,1447]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.RECORDING_ON_SOUND_FILE=e.RECORDING_OFF_SOUND_FILE=e.LIVE_STREAMING_ON_SOUND_FILE=e.LIVE_STREAMING_OFF_SOUND_FILE=void 0;e.LIVE_STREAMING_OFF_SOUND_FILE='liveStreamingOff.mp3';e.LIVE_STREAMING_ON_SOUND_FILE='liveStreamingOn.mp3';e.RECORDING_OFF_SOUND_FILE='recordingOff.mp3';e.RECORDING_ON_SOUND_FILE='recordingOn.mp3'},1449,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),t=r(d[2]);r(d[3]).StateListenerRegistry.register(function(n){var t=n['features/recent-list'];return t&&t.length&&t[t.length-1]},function(c,o,u){(0,n.default)(o),u&&c&&u.conference===c.conference&&0===c.duration&&(0,t.sendAnalytics)((0,t.createRejoinedEvent)({lastConferenceDuration:u.duration/1e3,timeSinceLeft:(Date.now()-(u.date+u.duration))/1e3,url:u.conference}))})},1450,[3,1451,905,443]);
__d(function(g,r,i,a,m,e,d){m.exports=function(n){if(null==n)throw new TypeError("Cannot destructure undefined")}},1451,[]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]),t=o(r(d[1])),n=r(d[2]),s=r(d[3]),c=r(d[4]),u=r(d[5]),l=r(d[6]),E=r(d[7]),f=r(d[8]),p=r(d[9]),O=o(r(d[10]));function P(o,t,n){var c=o.dispatch;return c((0,s.hideDialog)(f.PasswordRequiredPrompt)),c((0,s.hideDialog)(f.RoomLockPrompt)),t(n)}function R(o,t,n){var u=o.dispatch,l=n.conference,p=n.error;return l&&p.name===c.JitsiConferenceErrors.PASSWORD_REQUIRED?(void 0===p.recoverable&&(p.recoverable=!0),p.recoverable&&u((0,E._openPasswordRequiredPrompt)(l))):(u((0,s.hideDialog)(f.PasswordRequiredPrompt)),u((0,s.hideDialog)(f.RoomLockPrompt))),t(n)}function T(o,t,n){if('undefined'!=typeof APP){var s,u,l=n.error;l===c.JitsiConferenceErrors.PASSWORD_NOT_SUPPORTED?(O.default.warn('room passwords not supported'),s='dialog.passwordNotSupported',u='dialog.passwordNotSupportedTitle'):(O.default.warn('setting password failed',l),s='dialog.lockMessage',u='dialog.lockTitle'),APP.UI.messageHandler.showError({descriptionKey:s,titleKey:u})}return t(n)}u.MiddlewareRegistry.register(function(o){return function(s){return function(c){switch(c.type){case n.CONFERENCE_FAILED:return R(o,s,c);case n.CONFERENCE_JOINED:return P(o,s,c);case n.LOCK_STATE_CHANGED:'undefined'!=typeof APP&&APP.UI.emitEvent(t.default.TOGGLE_ROOM_LOCK,c.locked);var u=o.getState()['features/base/conference'].locked,E=s(c),f=o.getState()['features/base/conference'].locked;return f===p.LOCKED_REMOTELY?o.dispatch((0,l.showNotification)({titleKey:'notify.passwordSetRemotely'},l.NOTIFICATION_TIMEOUT)):u!==p.LOCKED_REMOTELY||f||o.dispatch((0,l.showNotification)({titleKey:'notify.passwordRemovedRemotely'},l.NOTIFICATION_TIMEOUT)),E;case n.SET_PASSWORD_FAILED:return T(o,s,c)}return s(c)}}})},1452,[3,1144,1101,531,879,443,706,1453,1454,1458,1459]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.beginRoomLockRequest=function(o){return function(n,s){if(void 0===o&&(o=s()['features/base/conference'].conference),o){var u=s()['features/base/config'].roomPasswordNumberOfDigits;n((0,t.openDialog)(c.RoomLockPrompt,{conference:o,passwordNumberOfDigits:u}))}}},e._cancelPasswordRequiredPrompt=function(t){return function(c,s){if('undefined'!=typeof APP)return APP.API.notifyReadyToClose(),void c((0,o.maybeRedirectToWelcomePage)());var u=s();t===u['features/base/conference'].passwordRequired&&t[n.JITSI_CONFERENCE_URL_KEY]===u['features/base/connection'].locationURL&&(c((0,n.conferenceLeft)(t)),c((0,o.appNavigate)(void 0)))}},e.endRoomLockRequest=function(o,s){return function(u){var f=s?u((0,n.setPassword)(o,o.lock,s)):Promise.resolve(),P=function(){return u((0,t.hideDialog)(c.RoomLockPrompt))};f.then(P,P)}},e._openPasswordRequiredPrompt=function(o){return(0,t.openDialog)(c.PasswordRequiredPrompt,{conference:o})},e.unlockRoom=function(){return function(o,t){var c=t()['features/base/conference'].conference;return o((0,n.setPassword)(c,c.lock,''))}};var o=r(d[0]),n=r(d[1]),t=r(d[2]),c=r(d[3])},1453,[1100,1101,531,1454]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"PasswordRequiredPrompt",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"RoomLockButton",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"RoomLockPrompt",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3]))},1454,[3,1455,1456,1457]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),u=n(r(d[4])),c=n(r(d[5])),l=n(r(d[6])),p=n(r(d[7])),f=t(r(d[8])),_=r(d[9]),h=r(d[10]),v=r(d[11]),w=r(d[12]),b=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,u.default)(this,(0,c.default)(n).call(this,t))).state={password:t._password},s._onCancel=s._onCancel.bind((0,p.default)((0,p.default)(s))),s._onSubmit=s._onSubmit.bind((0,p.default)((0,p.default)(s))),s}return(0,l.default)(n,t),(0,s.default)(n,[{key:"componentDidUpdate",value:function(){var t=this.props._password;t&&t!==this.state.password&&this.setState({password:t})}},{key:"render",value:function(){var t=this.state.password;return f.default.createElement(h.InputDialog,{contentKey:"dialog.passwordLabel",initialValue:t,messageKey:t?'dialog.incorrectRoomLockPassword':void 0,onCancel:this._onCancel,onSubmit:this._onSubmit,textInputProps:{secureTextEntry:!0}})}},{key:"_onCancel",value:function(){return this.props.dispatch((0,w._cancelPasswordRequiredPrompt)(this.props.conference)),!0}},{key:"_onSubmit",value:function(t){var n=this.props.conference;return this.props.dispatch((0,_.setPassword)(n,n.join,t)),!0}}]),n})(f.Component);var y=(0,v.connect)(function(t){return{_password:t['features/base/conference'].password}})(b);e.default=y},1455,[2,3,4,5,6,9,10,8,59,1101,531,443,1453]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=o(r(d[1])),l=o(r(d[2])),c=o(r(d[3])),n=o(r(d[4])),u=o(r(d[5])),s=r(d[6]),f=r(d[7]),k=r(d[8]),v=r(d[9]),b=r(d[10]),_=r(d[11]),p=r(d[12]),h=(function(o){function s(){var o,l;(0,t.default)(this,s);for(var u=arguments.length,f=new Array(u),v=0;v<u;v++)f[v]=arguments[v];return(l=(0,c.default)(this,(o=(0,n.default)(s)).call.apply(o,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.lockRoom',l.icon=k.IconRoomLock,l.label='dialog.lockRoom',l.toggledIcon=k.IconRoomUnlock,l.toggledLabel='dialog.unlockRoom',l}return(0,u.default)(s,o),(0,l.default)(s,[{key:"_handleClick",value:function(){var o=this.props,t=o.dispatch;t(o._locked?(0,p.unlockRoom)():(0,p.beginRoomLockRequest)())}},{key:"_isDisabled",value:function(){return!this.props._localParticipantModerator}},{key:"_isToggled",value:function(){return this.props._locked}}]),s})(_.AbstractButton);var R=(0,f.translate)((0,b.connect)(function(o,t){var l=o['features/base/conference'],c=l.conference,n=l.locked,u=(0,s.getFeatureFlag)(o,s.MEETING_PASSWORD_ENABLED,!0),f=t.visible,k=void 0===f?u:f;return{_localParticipantModerator:Boolean(c&&(0,v.isLocalParticipantModerator)(o)),_locked:Boolean(c&&n),visible:k}})(h));e.default=R},1456,[3,4,5,6,9,10,951,726,548,704,443,970,1453]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),p=n(r(d[7])),c=n(r(d[8])),_=t(r(d[9])),b=r(d[10]),v=r(d[11]),h=r(d[12]),y={autoCapitalize:'none',autoCorrect:!1},C=(function(t){function n(t){var u;return(0,o.default)(this,n),(u=(0,s.default)(this,(0,f.default)(n).call(this,t)))._onCancel=u._onCancel.bind((0,c.default)((0,c.default)(u))),u._onSubmit=u._onSubmit.bind((0,c.default)((0,c.default)(u))),u._validateInput=u._validateInput.bind((0,c.default)((0,c.default)(u))),u}return(0,p.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){var t=y;return this.props.passwordNumberOfDigits&&(t=(0,u.default)({},t,{keyboardType:'number-pad',maxLength:this.props.passwordNumberOfDigits})),_.default.createElement(b.InputDialog,{contentKey:"security.about",onCancel:this._onCancel,onSubmit:this._onSubmit,textInputProps:t,validateInput:this._validateInput})}},{key:"_onCancel",value:function(){return this._onSubmit(void 0)}},{key:"_onSubmit",value:function(t){return this.props.dispatch((0,h.endRoomLockRequest)(this.props.conference,t)),!1}},{key:"_validateInput",value:function(t){return!(this.props.passwordNumberOfDigits&&t.length>0&&!/^\d+$/.test(t))}}]),n})(_.Component),I=(0,v.connect)()(C);e.default=I},1457,[2,3,53,4,5,6,9,10,8,59,531,443,1453]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.LOCKED_REMOTELY=e.LOCKED_LOCALLY=void 0;e.LOCKED_LOCALLY='LOCKED_LOCALLY';e.LOCKED_REMOTELY='LOCKED_REMOTELY'},1458,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/room-lock');e.default=o},1459,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),l=r(d[2]),c=r(d[3]),s=r(d[4]),u=r(d[5]),f=r(d[6]),o=t(r(d[7])),I=t(r(d[8]));f.MiddlewareRegistry.register(function(t){return function(f){return function(y){var E=t.getState(),v=E['features/base/config'],p=v.analytics;switch(y.type){case s.LIB_WILL_INIT:if(p.rtcstatsEnabled)try{var N=p.rtcstatsPollInterval||1e3;o.default.init({rtcstatsEndpoint:p.rtcstatsEndpoint,rtcstatsPollInterval:N})}catch(t){I.default.error('Failed to initialize RTCStats: ',t)}break;case c.CONFERENCE_JOINED:if(p.rtcstatsEnabled&&o.default.isInitialized())try{o.default.connect();var _=(0,u.getLocalParticipant)(E);o.default.sendIdentityData((0,n.default)({},(0,l.getAmplitudeIdentity)(),v,{displayName:null==_?void 0:_.name}))}catch(t){I.default.error('RTCStats connect failed with: ',t)}}return f(y)}}})},1460,[3,53,905,1101,879,704,443,1461,1473]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),s=t(r(d[3])),c=t(r(d[4])),o=r(d[5]),u=t(r(d[6]));function f(t){if(t&&t.iceServers[0]&&t.iceServers[0].urls){var n=t.iceServers[0].urls,l=Array.isArray(n),s=0;for(n=l?n:n["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var c;if(l){if(s>=n.length)break;c=n[s++]}else{if((s=n.next()).done)break;c=s.value}if(c.indexOf('taas.callstats.io')>=0)return!0}}}var h=new((function(){function t(){(0,n.default)(this,t)}return(0,l.default)(t,[{key:"init",value:function(t){this.handleTraceWSClose=this.handleTraceWSClose.bind(this),this.trace=(0,c.default)(t.rtcstatsEndpoint,this.handleTraceWSClose),(0,s.default)(this.trace,t.rtcstatsPollInterval,[''],f),this.initialized=!0}},{key:"isInitialized",value:function(){return this.initialized}},{key:"sendIdentityData",value:function(t){this.trace&&this.trace('identity',null,t)}},{key:"connect",value:function(){this.trace&&this.trace.connect()}},{key:"close",value:function(){this.trace&&this.trace.close()}},{key:"handleTraceWSClose",value:function(t){u.default.info('RTCStats trace ws closed',t),(0,o.sendAnalytics)((0,o.createRTCStatsTraceCloseEvent)(t))}}]),t})());e.default=h},1461,[3,4,5,1462,1472,905,1473]);
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,f,v,p){var h=0,y=new o.BrowserDetection,S=y.isFirefox(),b=y.isSafari(),C=y.isChrome(),D=y.isElectron();if(!(S||b||C||D))throw new Error('RTCStats unsupported browser.');if(v.forEach(function(o){if(window[o+'RTCPeerConnection']){var u=window[o+'RTCPeerConnection'],v=function(o,v){var y=(0,n.default)({},o),C=(0,n.default)({},v);try{var D=new u(o,v);if(p&&p(o))return D;var O='PC_'+h++;D.__rtcStatsId=O,o||(o={nullConfig:!0}),((o=JSON.parse(JSON.stringify(o)))&&o.iceServers||[]).forEach(function(t){delete t.credential}),o.browserType=S?'moz':'webkit',t('create',O,o),v&&t('constraints',O,v),D.addEventListener('icecandidate',function(n){t('onicecandidate',O,n.candidate)}),D.addEventListener('addstream',function(n){t('onaddstream',O,n.stream.id+' '+n.stream.getTracks().map(function(t){return t.kind+':'+t.id}))}),D.addEventListener('track',function(n){t('ontrack',O,n.track.kind+':'+n.track.id+' '+n.streams.map(function(t){return'stream:'+t.id}))}),D.addEventListener('removestream',function(n){t('onremovestream',O,n.stream.id+' '+n.stream.getTracks().map(function(t){return t.kind+':'+t.id}))}),D.addEventListener('signalingstatechange',function(){t('onsignalingstatechange',O,D.signalingState)}),D.addEventListener('iceconnectionstatechange',function(){t('oniceconnectionstatechange',O,D.iceConnectionState)}),D.addEventListener('icegatheringstatechange',function(){t('onicegatheringstatechange',O,D.iceGatheringState)}),D.addEventListener('connectionstatechange',function(){t('onconnectionstatechange',O,D.connectionState)}),D.addEventListener('negotiationneeded',function(){t('onnegotiationneeded',O,void 0)}),D.addEventListener('datachannel',function(n){t('ondatachannel',O,[n.channel.id,n.channel.label])});var T={},E=function(){S||b?D.getStats(null).then(function(n){var o=c(n),l=JSON.parse(JSON.stringify(o));t('getstats',O,s(T,o)),T=l}):D.getStats(function(n){var o=l(D,n),c=JSON.parse(JSON.stringify(o));t('getstats',O,s(T,o)),T=c})};if(f)var k=window.setInterval(function(){'closed'!==D.signalingState?E():window.clearInterval(k)},f);return D.addEventListener('iceconnectionstatechange',function(){'connected'===D.iceConnectionState&&E()}),D}catch(t){return console.error('RTCStats PeerConnection bind failed: ',t),new u(y,C)}};['createDataChannel','close'].forEach(function(n){var o=u.prototype[n];o&&(u.prototype[n]=function(){try{t(n,this.__rtcStatsId,arguments)}catch(t){console.error("RTCStats "+n+" bind failed: ",t)}return o.apply(this,arguments)})}),['addStream','removeStream'].forEach(function(n){var o=u.prototype[n];o&&(u.prototype[n]=function(){try{var c=arguments[0],s=c.getTracks().map(function(t){return t.kind+':'+t.id}).join(',');t(n,this.__rtcStatsId,c.id+' '+s)}catch(t){console.error("RTCStats "+n+" bind failed: ",t)}return o.apply(this,arguments)})}),['addTrack'].forEach(function(n){var o=u.prototype[n];o&&(u.prototype[n]=function(){try{var c=arguments[0],s=[].slice.call(arguments,1);t(n,this.__rtcStatsId,c.kind+':'+c.id+' '+(s.map(function(t){return'stream:'+t.id}).join(';')||'-'))}catch(t){console.error("RTCStats "+n+" bind failed: ",t)}return o.apply(this,arguments)})}),['removeTrack'].forEach(function(n){var o=u.prototype[n];o&&(u.prototype[n]=function(){try{var c=arguments[0].track;t(n,this.__rtcStatsId,c?c.kind+':'+c.id:'null')}catch(t){console.error("RTCStats "+n+" bind failed: ",t)}return o.apply(this,arguments)})}),['createOffer','createAnswer'].forEach(function(n){var o=u.prototype[n];o&&(u.prototype[n]=function(){var c,s=this.__rtcStatsId,l=arguments;1===arguments.length&&'object'==typeof arguments[0]?c=arguments[0]:3===arguments.length&&'object'==typeof arguments[2]&&(c=arguments[2]);try{t(n,this.__rtcStatsId,c)}catch(t){console.error("RTCStats "+n+" bind failed: ",t)}return o.apply(this,c?[c]:void 0).then(function(o){try{t(n+'OnSuccess',s,o)}catch(t){console.error("RTCStats "+n+" promise success bind failed: ",t)}if(!(l.length>0&&'function'==typeof l[0]))return o;l[0].apply(null,[o])},function(o
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},1463,[1464,1466,1468,1471]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getAvatarURL=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},v=t.avatarID,f=t.email,l=t.id,s=n.urlPrefix,c=void 0===s?'https://abotars.jitsi.net/meeple/':s,h=n.urlSuffix,w=void 0===h?'':h;return u(f)||o(v||l,c,w)},e.getGravatarURL=u;var n=t(r(d[1]));function o(t,o,u){return o+n.default.hex(t.trim().toLowerCase())+u}function u(t){var o;return"https://www.gravatar.com/avatar/"+((o=t)&&o.indexOf('@')>0?n.default.hex(t.trim().toLowerCase()):t)+'?d=404&size=200'}},1464,[3,1465]);
__d(function(g,r,i,a,m,e,d){!(function(){'use strict';var ERROR='input is invalid type',WINDOW='object'==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&'object'==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&'object'==typeof process&&process.versions&&process.versions.node;NODE_JS?root=g:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&'object'==typeof m&&m.exports,AMD='function'==typeof define&&define.amd,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&'undefined'!=typeof ArrayBuffer,HEX_CHARS='0123456789abcdef'.split(''),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=['hex','array','digest','buffer','arrayBuffer','base64'],BASE64_ENCODE_CHAR='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return'[object Array]'===Object.prototype.toString.call(t)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return'object'==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var createOutputMethod=function(t){return function(s){return new Md5(!0).update(s)[t]()}},createMethod=function(){var t=createOutputMethod('hex');NODE_JS&&(t=nodeWrap(t)),t.create=function(){return new Md5},t.update=function(s){return t.create().update(s)};for(var s=0;s<OUTPUT_TYPES.length;++s){var o=OUTPUT_TYPES[s];t[o]=createOutputMethod(o)}return t},nodeWrap=function nodeWrap(method){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),nodeMethod=function(t){if('string'==typeof t)return crypto.createHash('md5').update(t,'utf8').digest('hex');if(null===t||void 0===t)throw ERROR;return t.constructor===ArrayBuffer&&(t=new Uint8Array(t)),Array.isArray(t)||ArrayBuffer.isView(t)||t.constructor===Buffer?crypto.createHash('md5').update(new Buffer(t)).digest('hex'):method(t)};return nodeMethod};function Md5(t){if(t)blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks,this.buffer8=buffer8;else if(ARRAY_BUFFER){var s=new ArrayBuffer(68);this.buffer8=new Uint8Array(s),this.blocks=new Uint32Array(s)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}Md5.prototype.update=function(t){if(!this.finalized){var s,o=typeof t;if('string'!==o){if('object'!==o)throw ERROR;if(null===t)throw ERROR;if(ARRAY_BUFFER&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||ARRAY_BUFFER&&ArrayBuffer.isView(t)))throw ERROR;s=!0}for(var h,f,n=0,A=t.length,u=this.blocks,R=this.buffer8;n<A;){if(this.hashed&&(this.hashed=!1,u[0]=u[16],u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),s)if(ARRAY_BUFFER)for(f=this.start;n<A&&f<64;++n)R[f++]=t[n];else for(f=this.start;n<A&&f<64;++n)u[f>>2]|=t[n]<<SHIFT[3&f++];else if(ARRAY_BUFFER)for(f=this.start;n<A&&f<64;++n)(h=t.charCodeAt(n))<128?R[f++]=h:h<2048?(R[f++]=192|h>>6,R[f++]=128|63&h):h<55296||h>=57344?(R[f++]=224|h>>12,R[f++]=128|h>>6&63,R[f++]=128|63&h):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),R[f++]=240|h>>18,R[f++]=128|h>>12&63,R[f++]=128|h>>6&63,R[f++]=128|63&h);else for(f=this.start;n<A&&f<64;++n)(h=t.charCodeAt(n))<128?u[f>>2]|=h<<SHIFT[3&f++]:h<2048?(u[f>>2]|=(192|h>>6)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]):h<55296||h>=57344?(u[f>>2]|=(224|h>>12)<<SHIFT[3&f++],u[f>>2]|=(128|h>>6&63)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]):(h=65536+((1023&h)<<10|1023&t.charCodeAt(++n)),u[f>>2]|=(240|h>>18)<<SHIFT[3&f++],u[f>>2]|=(128|h>>12&63)<<SHIFT[3&f++],u[f>>2]|=(128|h>>6&63)<<SHIFT[3&f++],u[f>>2]|=(128|63&h)<<SHIFT[3&f++]);this.lastByteIndex=f,this.bytes+=f-this.start,f>=64?(this.start=f-64,this.hash(),this.hashed=!0):this.start=f
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BrowserCapabilities",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1466,[3,1467]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),n=r(d[4]),p=(function(){function t(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},p=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=arguments.length>2?arguments[2]:void 0;(0,u.default)(this,t);var c,f=new n.BrowserDetection(l);if('object'==typeof o&&'string'==typeof f.getVersion())for(var v=o[f.getName()]||[],b=0;b<v.length;b++){var h=v[b];if('object'==typeof h){var _=h.version;if(!_||!f.isVersionGreaterThan(_)){c=h;break}}}c&&c.capabilities?this._capabilities=p?(0,s.default)({},c.capabilities,c.iframeCapabilities):c.capabilities:this._capabilities={isSupported:!1},void 0===this._capabilities.isSupported?this._capabilities.isSupported=!0:!1===this._capabilities.isSupported&&(this._capabilities={isSupported:!1})}return(0,o.default)(t,[{key:"isSupported",value:function(){return this._capabilities.isSupported}},{key:"supportsAudioIn",value:function(){return this._capabilities.audioIn||!1}},{key:"supportsAudioOut",value:function(){return this._capabilities.audioOut||!1}},{key:"supportsScreenSharing",value:function(){return this._capabilities.screenSharing||!1}},{key:"supportsVideoIn",value:function(){return this._capabilities.videoIn||!1}},{key:"supportsVideoOut",value:function(){return this._capabilities.videoOut||!1}}]),t})();e.default=p},1467,[3,53,4,5,1468]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BrowserDetection",{enumerable:!0,get:function(){return n.default}}),e.browsers=void 0;var n=o(r(d[2])),u=t(r(d[3]));e.browsers=u},1468,[2,3,1469,1470]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),o=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),v=r(d[5]),c={Chrome:v.CHROME,Chromium:v.CHROME,Opera:v.OPERA,Firefox:v.FIREFOX,'Internet Explorer':v.INTERNET_EXPLORER,Safari:v.SAFARI};function h(){var n=navigator.userAgent,t={name:v.UNKNOWN,version:void 0};if(n.match(/Chrome/)&&!n.match(/Edge/))if(n.match(/Edg(A?)/)){var o=n.match(/Chrome\/([\d.]+)/)[1];Number.parseInt(o,10)>72&&(t.name=v.CHROME,t.version=o)}else t.name=v.CHROME,t.version=n.match(/Chrome\/([\d.]+)/)[1];return t}function f(){var n=navigator.userAgent;if(n.match(/Electron/)){var t=n.match(/Electron\/([\d.]+)/)[1];return{name:v.ELECTRON,version:t}}}function l(){var n=navigator.userAgent;if(n.match(/JitsiMeetNW/)){var t=n.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:v.NWJS,version:t}}}function E(){var n,t,o=navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i);if(o||'ReactNative'===navigator.product)return o&&o.length>2&&(t=o[1],n=o[2]),t||(t='react-native'),n||(n='unknown'),{name:v.REACT_NATIVE,version:n}}function _(n){for(var t,o=[E,f,l],u=0;u<o.length;u++)if(t=o[u]())return t;var s=n.getBrowserName();return s in c?{name:c[s],version:n.getBrowserVersion()}:(t=h())||{name:v.UNKNOWN,version:void 0}}var N=(function(){function n(t){var u,h;if((0,o.default)(this,n),this._bowser=s.default.getParser(navigator.userAgent),void 0===t){var f=_(this._bowser);u=f.name,h=f.version}else t.name in c?(u=c[t.name],h=t.version):(u=v.UNKNOWN,h=void 0);this._name=u,this._version=h}return(0,u.default)(n,[{key:"getName",value:function(){return this._name}},{key:"isChrome",value:function(){return this._name===v.CHROME}},{key:"isOpera",value:function(){return this._name===v.OPERA}},{key:"isFirefox",value:function(){return this._name===v.FIREFOX}},{key:"isIExplorer",value:function(){return this._name===v.INTERNET_EXPLORER}},{key:"isSafari",value:function(){return this._name===v.SAFARI}},{key:"isNWJS",value:function(){return this._name===v.NWJS}},{key:"isElectron",value:function(){return this._name===v.ELECTRON}},{key:"isReactNative",value:function(){return this._name===v.REACT_NATIVE}},{key:"getVersion",value:function(){return this._version}},{key:"_checkCondition",value:function(n){if(this._version)return this._bowser.satisfies(n)}},{key:"isVersionGreaterThan",value:function(n){return this._checkCondition((0,t.default)({},this._name,">"+n))}},{key:"isVersionLessThan",value:function(n){return this._checkCondition((0,t.default)({},this._name,"<"+n))}},{key:"isVersionEqualTo",value:function(n){return this._checkCondition((0,t.default)({},this._name,"~"+n))}}]),n})();e.default=N},1469,[3,54,4,5,490,1470]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UNKNOWN=e.REACT_NATIVE=e.ELECTRON=e.NWJS=e.SAFARI=e.INTERNET_EXPLORER=e.FIREFOX=e.OPERA=e.CHROME=void 0;e.CHROME='chrome';e.OPERA='opera';e.FIREFOX='firefox';e.INTERNET_EXPLORER='iexplorer';e.SAFARI='safari';e.NWJS='nwjs';e.ELECTRON='electron';e.REACT_NATIVE='react-native';e.UNKNOWN='unknown'},1470,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.jitsiLocalStorage=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),f=t(r(d[5])),c=(function(){function t(){(0,l.default)(this,t)}return(0,f.default)(t,[{key:"getItem",value:function(){}},{key:"setItem",value:function(){}},{key:"removeItem",value:function(){}},{key:"key",value:function(){}}]),t})(),s=new((function(t){function s(){var t,o;(0,l.default)(this,s),t=(0,n.default)(this,(0,u.default)(s).call(this));try{o=window.localStorage}catch(t){}return t.storage=o||new c,t}return(0,o.default)(s,t),(0,f.default)(s,[{key:"getItem",value:function(t){return this.storage.getItem(t)}},{key:"setItem",value:function(t,n){return this.storage.setItem(t,n)}},{key:"removeItem",value:function(t){return this.storage.removeItem(t)}},{key:"key",value:function(t){return this.storage.key(t)}}]),s})(c));e.jitsiLocalStorage=s},1471,[3,6,9,10,4,5]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(o,c){var l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3e4,s=[],f=void 0,u=void 0,_=function(){var n=Array.prototype.slice.call(arguments);n.push((new Date).getTime()),n[1]instanceof RTCPeerConnection&&(n[1]=n[1].__rtcStatsId),f&&f.readyState===WebSocket.OPEN?f.send(JSON.stringify(n)):f&&f.readyState>=WebSocket.CLOSING||s.length<300&&s.push(n)};return _.close=function(){f&&f.close()},_.connect=function(){f&&f.close(),(f=new WebSocket(o+window.location.pathname,n)).onclose=function(n){u&&clearInterval(u),c({code:n.code,reason:n.reason})},f.onopen=function(){for(u=setInterval(t.bind(null,f),l);s.length;)f.send(JSON.stringify(s.shift()))}},_};var n='2.0';function t(n){n.send('__ping__')}},1472,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/rtcstats');e.default=t},1473,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),s=r(d[2]),c=r(d[3]),u=r(d[4]),o=t(r(d[5])),l='transcription-result',p='translation-result',f='requestingTranscription',T='translation_language',E=3e3;function _(t,s,c){var f=t.dispatch,E=t.getState,_=c.json;if(!_||_.type!==l&&_.type!==p)return s(c);var y=E(),b=y['features/base/conference'].conference.getLocalParticipantProperty(T);try{var S=_.message_id,M=_.participant.name;if(_.type===p&&_.language===b){var O={clearTimeOut:void 0,final:_.text,participantName:M};v(f,S,O),f((0,u.updateTranscriptMessage)(S,O))}else if(_.type===l&&!b){var N=_.transcript[0].text,P=(0,n.default)({},y['features/subtitles']._transcriptMessages.get(S)||{participantName:M});v(f,S,P),_.is_interim?_.stability>.85?(P.stable=N,P.unstable=void 0):P.unstable=N:P.final=N,f((0,u.updateTranscriptMessage)(S,P))}}catch(t){o.default.error('Error occurred while updating transcriptions\n',t)}return s(c)}function v(t,n,s){s.clearTimeOut&&clearTimeout(s.clearTimeOut),s.clearTimeOut=setTimeout(function(){return t((0,u.removeTranscriptMessage)(n))},E)}s.MiddlewareRegistry.register(function(t){return function(n){return function(s){switch(s.type){case c.ENDPOINT_MESSAGE_RECEIVED:return _(t,n,s);case c.TOGGLE_REQUESTING_SUBTITLES:u=t.getState,o=u(),l=o['features/subtitles']._requestingSubtitles,o['features/base/conference'].conference.setLocalParticipantProperty(f,!l)}var u,o,l;return n(s)}}})},1474,[3,53,443,1105,1104,1475]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/subtitles');e.default=t},1475,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);function u(t,n){if('object'==typeof APP)if(n.fullScreen){var u=document.documentElement||{};'function'==typeof u.requestFullscreen?u.requestFullscreen():'function'==typeof u.mozRequestFullScreen?u.mozRequestFullScreen():'function'==typeof u.webkitRequestFullscreen&&u.webkitRequestFullscreen()}else'function'==typeof document.exitFullscreen?document.exitFullscreen():'function'==typeof document.mozCancelFullScreen?document.mozCancelFullScreen():'function'==typeof document.webkitExitFullscreen&&document.webkitExitFullscreen();return t(n)}t.MiddlewareRegistry.register(function(t){return function(o){return function(c){switch(c.type){case n.CLEAR_TOOLBOX_TIMEOUT:var l=t.getState()['features/toolbox'].timeoutID;clearTimeout(l);break;case n.SET_FULL_SCREEN:return u(o,c);case n.SET_TOOLBOX_TIMEOUT:var s=t.getState()['features/toolbox'].timeoutID,f=c.handler,F=c.timeoutMS;clearTimeout(s),c.timeoutID=setTimeout(f,F)}return o(c)}}})},1476,[443,1001]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),c=r(d[2]),s=r(d[3]);t.MiddlewareRegistry.register(function(t){return function(T){return function(o){var p=t.getState()['features/transcribing'],b=p.transcriberJID,I=p.potentialTranscriberJIDs;switch(o.type){case c._TRANSCRIBER_LEFT:t.dispatch((0,s.showStoppedTranscribingNotification)());break;case n.HIDDEN_PARTICIPANT_JOINED:o.displayName&&"Transcriber"===o.displayName?t.dispatch((0,s.transcriberJoined)(o.id)):t.dispatch((0,s.potentialTranscriberJoined)(o.id));break;case n.HIDDEN_PARTICIPANT_LEFT:o.id===b&&t.dispatch((0,s.transcriberLeft)(o.id));break;case n.PARTICIPANT_UPDATED:var N=o.participant;I.includes(N.id)&&"Transcriber"===N.name&&(t.dispatch((0,s.transcriberJoined)(N.id)),t.dispatch((0,s.hidePendingTranscribingNotification)()))}return T(o)}}})},1477,[443,704,1478,1479]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_PENDING_TRANSCRIBING_NOTIFICATION_UID=e._POTENTIAL_TRANSCRIBER_JOINED=e._TRANSCRIBER_LEFT=e._TRANSCRIBER_JOINED=void 0;e._TRANSCRIBER_JOINED='TRANSCRIBER_JOINED';e._TRANSCRIBER_LEFT='TRANSCRIBER_LEFT';e._POTENTIAL_TRANSCRIBER_JOINED='POTENTIAL_TRANSCRIBER_JOINED';e.SET_PENDING_TRANSCRIBING_NOTIFICATION_UID='SET_PENDING_TRANSCRIBING_NOTIFICATION_UID'},1478,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.transcriberJoined=function(n){return{type:t._TRANSCRIBER_JOINED,transcriberJID:n}},e.transcriberLeft=function(n){return{type:t._TRANSCRIBER_LEFT,transcriberJID:n}},e.potentialTranscriberJoined=function(n){return{type:t._POTENTIAL_TRANSCRIBER_JOINED,transcriberJID:n}},e.showPendingTranscribingNotification=function(){return function(t){var c=(0,n.showNotification)({descriptionKey:'transcribing.pending',isDismissAllowed:!1,titleKey:'dialog.transcribing'});t(c),t(o(c.uid))}},e.setPendingTranscribingNotificationUid=o,e.hidePendingTranscribingNotification=function(){return function(t,c){var s=c()['features/transcribing'].pendingNotificationUid;s&&(t((0,n.hideNotification)(s)),t(o()))}},e.showStoppedTranscribingNotification=function(){return(0,n.showNotification)({descriptionKey:'transcribing.off',titleKey:'dialog.transcribing'},n.NOTIFICATION_TIMEOUT)},e.showTranscribingError=function(){return(0,n.showErrorNotification)({descriptionKey:'transcribing.error',titleKey:'transcribing.failedToStart'})};var n=r(d[0]),t=r(d[1]);function o(n){return{type:t.SET_PENDING_TRANSCRIBING_NOTIFICATION_UID,uid:n}}},1479,[706,1478]);
__d(function(g,r,i,a,m,e,d){r(d[0])},1480,[1481]);
__d(function(g,r,i,a,m,e,d){var t,n=r(d[0]),c=r(d[1]),o=r(d[2]),s=r(d[3]),u=r(d[4]),l=r(d[5]);function v(n){var c=n.dispatch;void 0===(0,n.getState)()['features/video-layout'].tileViewEnabled&&void 0!==t&&c((0,l.setTileView)(t)),t=void 0}function T(n){var c=n.dispatch,o=(0,n.getState)()['features/video-layout'].tileViewEnabled;void 0!==o&&(t=o,c((0,l.setTileView)(void 0)))}r(d[6]),o.MiddlewareRegistry.register(function(t){return function(n){return function(o){var l=n(o);switch(o.type){case c.PIN_PARTICIPANT:(0,c.getPinnedParticipant)(t.getState())?T(t):v(t);break;case s.SET_DOCUMENT_EDITING_STATUS:o.editing?T(t):v(t);break;case u.SET_TILE_VIEW:o.enabled&&(0,c.getPinnedParticipant)(t)&&t.dispatch((0,c.pinParticipant)(null))}return l}}}),o.StateListenerRegistry.register(function(t){return(0,n.getCurrentConference)(t)},function(t,n,c){var o=n.dispatch;t!==c&&o((0,l.setTileView)())})},1481,[1101,704,443,1482,1261,1408,1488]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},1482,[1403,1402,1483,1404,1485]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"SharedDocument",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"SharedDocumentButton",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},1483,[3,1484,1487]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=k,e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),_=t(r(d[8])),p=r(d[9]),h=r(d[10]),v=r(d[11]),E=r(d[12]),y=r(d[13]),L=r(d[14]),C=r(d[15]),O=r(d[16]),b=r(d[17]),I=r(d[18]),S=t(r(d[19])),D=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,u.default)(this,(0,s.default)(n).call(this,t)))._onClose=l._onClose.bind((0,f.default)((0,f.default)(l))),l._onError=l._onError.bind((0,f.default)((0,f.default)(l))),l._renderLoading=l._renderLoading.bind((0,f.default)((0,f.default)(l))),l}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){var t=this.props._documentUrl;return _.default.createElement(y.JitsiModal,{headerProps:{headerLabelKey:'documentSharing.title'},modalId:b.SHARE_DOCUMENT_VIEW_ID,style:S.default.webView},_.default.createElement(h.WebView,{onError:this._onError,renderLoading:this._renderLoading,source:{uri:t},startInLoadingState:!0}))}},{key:"_onClose",value:function(){var t=this.props,n=t._isOpen,o=t.dispatch;return!!n&&(o((0,O.toggleDocument)()),!0)}},{key:"_onError",value:function(){var t=this.props,n=t._isOpen,o=t.dispatch;n&&o((0,O.toggleDocument)())}},{key:"_renderLoading",value:function(){return _.default.createElement(p.View,{style:S.default.indicatorWrapper},_.default.createElement(L.LoadingIndicator,{color:S.INDICATOR_COLOR,size:"large"}))}}]),n})(_.PureComponent);function k(t){var n=t['features/etherpad'].editing;return{_documentUrl:(0,I.getSharedDocumentUrl)(t),_headerStyles:v.ColorSchemeRegistry.get(t,'Header'),_isOpen:n}}var w=(0,E.translate)((0,C.connect)(k)(D));e.default=w},1484,[2,3,4,5,6,9,10,8,59,15,989,438,726,1192,539,443,1403,1404,1485,1486]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getSharedDocumentUrl=function(n){var o=(0,t.toState)(n),u=o['features/etherpad'].documentUrl,f=o['features/base/settings'].displayName;if(!u)return;var l=new URLSearchParams(s);f&&l.append('userName',f);return u+"?"+l.toString()};var t=r(d[0]),s={showControls:'true',showChat:'false',showLineNumbers:'true',useMonospaceFont:'false'}},1485,[443]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.INDICATOR_COLOR=void 0;var t=r(d[0]),o=t.ColorPalette.lightGrey;e.INDICATOR_COLOR=o;var l={indicatorWrapper:{alignItems:'center',backgroundColor:t.ColorPalette.white,height:'100%',justifyContent:'center'},webView:{backgroundColor:'rgb(242, 242, 242)'}};e.default=l},1486,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),s=r(d[6]),f=r(d[7]),b=r(d[8]),v=r(d[9]),p=r(d[10]),h=r(d[11]),_=(function(t){function f(){var t,l;(0,n.default)(this,f);for(var u=arguments.length,s=new Array(u),v=0;v<u;v++)s[v]=arguments[v];return(l=(0,o.default)(this,(t=(0,c.default)(f)).call.apply(t,[this].concat(s)))).accessibilityLabel='toolbar.accessibilityLabel.document',l.icon=b.IconShareDoc,l.label='toolbar.documentOpen',l.toggledLabel='toolbar.documentClose',l}return(0,u.default)(f,t),(0,l.default)(f,[{key:"_handleClick",value:function(){(0,s.sendAnalytics)((0,s.createToolbarEvent)('toggle.etherpad',{enable:!this.props._editing})),this.props.dispatch((0,h.toggleDocument)())}},{key:"_isToggled",value:function(){return this.props._editing}}]),f})(p.AbstractButton);var y=(0,f.translate)((0,v.connect)(function(t,n){var l=t['features/etherpad'],o=l.documentUrl,c=l.editing,u=n.visible;return{_editing:c,visible:void 0===u?Boolean(o):u}})(_));e.default=y},1487,[3,4,5,6,9,10,905,726,548,443,970,1403]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),c=r(d[3]),o=r(d[4]),u=r(d[5]),s=r(d[6]);function f(){return'object'==typeof interfaceConfig?interfaceConfig.AUTO_PIN_LATEST_SCREEN_SHARE:'remote-only'}function l(t){var c=t.dispatch,o=t.getState,u=o()['features/video-layout'].screenShares;if(u){var s=u[u.length-1],f=(0,n.getPinnedParticipant)(o);s?c((0,n.pinParticipant)(s)):f&&c((0,n.pinParticipant)(null))}}c.StateListenerRegistry.register(function(t){return t['features/video-layout'].tileViewEnabled},function(t,n){(0,n.dispatch)((0,u.selectParticipant)())}),c.StateListenerRegistry.register(function(t){return t['features/base/tracks']},(0,t.default)(function(t,n){if(f()&&!(0,o.isFollowMeActive)(n)){var u=n.getState()['features/video-layout'].screenShares||[],p=t.reduce(function(t,n){'video'===n.mediaType&&'desktop'===n.videoType&&('remote-only'===f()&&n.local||t.push(n.participantId));return t},[]),h=u.filter(function(t){return p.includes(t)});p.forEach(function(t){h.includes(t)||h.push(t)}),(0,c.equals)(u,h)||(n.dispatch((0,s.setParticipantsWithScreenShare)(h)),l(n))}},100))},1488,[3,709,704,443,1489,1490,1408]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1489,[1415]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1490,[1420,1491]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var n={LargeVideo:!0};Object.defineProperty(e,"LargeVideo",{enumerable:!0,get:function(){return o.default}});var o=t(r(d[1])),u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))})},1491,[3,1492,1494]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),u=n(r(d[3])),l=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),v=t(r(d[8])),h=r(d[9]),p=r(d[10]),_=r(d[11]),y=(r(d[12]),r(d[13])),I={avatarSize:y.AVATAR_SIZE,useConnectivityInfoLabel:!0},S=(function(t){function n(){var t,l;(0,u.default)(this,n);for(var f=arguments.length,v=new Array(f),h=0;h<f;h++)v[h]=arguments[h];return(l=(0,s.default)(this,(t=(0,c.default)(n)).call.apply(t,[this].concat(v)))).state=(0,o.default)({},I),l}return(0,f.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){var t=this.state,n=t.avatarSize,o=t.useConnectivityInfoLabel,u=this.props,l=u._participantId,s=u._styles,c=u.onClick;return v.default.createElement(p.ParticipantView,{avatarSize:n,onPress:c,participantId:l,style:s.largeVideo,testHintId:"org.jitsi.meet.LargeVideo",useConnectivityInfoLabel:o,zOrder:0,zoomEnabled:!0})}}],[{key:"getDerivedStateFromProps",value:function(t){var n=t._height,o=t._width,u=2*Math.round(Math.min(n,o)/2);return u<1.5*y.AVATAR_SIZE?{avatarSize:u-15,useConnectivityInfoLabel:!1}:I}}]),n})(v.PureComponent);var b=(0,_.connect)(function(t){var n=t['features/base/responsive-ui'],o=n.clientHeight,u=n.clientWidth;return{_height:o,_participantId:t['features/large-video'].participantId,_styles:h.ColorSchemeRegistry.get(t,'LargeVideo'),_width:u}})(S);e.default=b},1492,[2,3,53,4,5,6,9,10,59,438,704,443,522,1493]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.AVATAR_SIZE=void 0;var o=t(r(d[1])),l=r(d[2]),c=r(d[3]);e.AVATAR_SIZE=200,c.ColorSchemeRegistry.register('LargeVideo',{largeVideo:(0,o.default)({},l.StyleSheet.absoluteFillObject,{alignItems:'stretch',backgroundColor:(0,c.schemeColor)('background'),flex:1,justifyContent:'center'})})},1493,[3,53,15,438]);
__d(function(g,r,i,a,m,e,d){},1494,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),s=r(d[4]),f=r(d[5]),l=r(d[6]),c=r(d[7]),v=r(d[8]),y=t(r(d[9])),V=r(d[10]);function p(t,n,o){if(t){var u=Math.min(n,o);t.setReceiverVideoConstraint(u),y.default.info("setReceiverVideoConstraint: "+u)}}function Q(t,n){t&&t.setSenderVideoConstraint(n).catch(function(t){y.default.error("Changing sender resolution to "+n+" failed - "+t+" ")})}function h(t,n,o){var u=t(),s=u['features/base/conference'].conference,f=u['features/video-quality'],l=f.maxReceiverVideoQuality;return p(s,f.preferredVideoQuality,l),n(o)}s.MiddlewareRegistry.register(function(t){var u=t.dispatch,s=t.getState;return function(t){return function(f){if(f.type===n.DATA_CHANNEL_OPENED)return h(s,t,f);var c=t(f);switch(f.type){case n.CONFERENCE_JOINED:if('ReactNative'===navigator.product){var v=s()['features/base/config'].resolution;void 0!==v&&(u((0,l.setPreferredVideoQuality)(Number.parseInt(v,10))),y.default.info("Configured preferred receiver video frame height to: "+v))}break;case o.SET_CONFIG:var V=s(),p=V['features/base/config'].videoQuality;(void 0===p?{}:p).persist&&u((0,l.setPreferredVideoQuality)(V['features/video-quality-persistent-storage'].persistedPrefferedVideoQuality))}return c}}}),s.StateListenerRegistry.register(function(t){var n,o,s=t['features/base/responsive-ui'].reducedUI,l=(0,f.shouldDisplayTileView)(t),c=null==(n=t['features/filmstrip'])?void 0:null==(o=n.tileViewDimensions)?void 0:o.thumbnailSize;return{displayTileView:l,participantCount:(0,u.getParticipantCount)(t),reducedUI:s,thumbnailHeight:null==c?void 0:c.height}},function(t,n){var o=t.displayTileView,u=t.participantCount,s=t.reducedUI,f=t.thumbnailHeight,p=n.dispatch,Q=(0,n.getState)(),h=Q['features/video-quality'].maxReceiverVideoQuality,E=Q['features/base/config'].maxFullResolutionParticipants,L=void 0===E?2:E,R=c.VIDEO_QUALITY_LEVELS.HIGH;if(s)R=c.VIDEO_QUALITY_LEVELS.LOW;else if(o&&!Number.isNaN(f)&&h!==(R=(0,v.getReceiverVideoQualityLevel)(f,(0,V.getMinHeightForQualityLvlMap)(Q)))&&-1!==L){var I=u>L&&R>c.VIDEO_QUALITY_LEVELS.STANDARD;y.default.info("Video quality level for thumbnail height: "+f+", is: "+R+", override: "+String(I)+", max full res N: "+L),I&&(R=c.VIDEO_QUALITY_LEVELS.STANDARD)}h!==R&&p((0,l.setMaxReceiverVideoQuality)(R))},{deepEquals:!0}),s.StateListenerRegistry.register(function(t){var n=t['features/base/conference'].conference,o=t['features/video-quality'];return{conference:n,maxReceiverVideoQuality:o.maxReceiverVideoQuality,preferredVideoQuality:o.preferredVideoQuality}},function(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=t.conference,s=t.maxReceiverVideoQuality,f=t.preferredVideoQuality,l=u!==o.conference,c=f!==o.preferredVideoQuality,v=s!==o.maxReceiverVideoQuality;(l||c||v)&&p(u,f,s),(l||c)&&Q(u,f),'undefined'!=typeof APP&&c&&APP.API.notifyVideoQualityChanged(f)})},1495,[3,1101,917,704,443,1407,1496,1498,1500,1499,1501]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.setPreferredVideoQuality=o,e.setMaxReceiverVideoQuality=function(t){return{type:u.SET_MAX_RECEIVER_VIDEO_QUALITY,maxReceiverVideoQuality:t}},e.setVideoQuality=function(t){return function(u){t<n.VIDEO_QUALITY_LEVELS.LOW?E.default.error("Invalid frame height for video quality - "+t):u(o(Math.min(t,n.VIDEO_QUALITY_LEVELS.HIGH)))}};var u=r(d[1]),n=r(d[2]),E=t(r(d[3]));function o(t){return{type:u.SET_PREFERRED_VIDEO_QUALITY,preferredVideoQuality:t}}},1496,[3,1497,1498,1499]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_MAX_RECEIVER_VIDEO_QUALITY=e.SET_PREFERRED_VIDEO_QUALITY=void 0;e.SET_PREFERRED_VIDEO_QUALITY='SET_PREFERRED_VIDEO_QUALITY';e.SET_MAX_RECEIVER_VIDEO_QUALITY='SET_MAX_RECEIVER_VIDEO_QUALITY'},1497,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.CFG_LVL_TO_APP_QUALITY_LVL=e.VIDEO_QUALITY_LEVELS=void 0;var L={HIGH:720,STANDARD:360,LOW:180};e.VIDEO_QUALITY_LEVELS=L;var _={low:L.LOW,standard:L.STANDARD,high:L.HIGH};e.CFG_LVL_TO_APP_QUALITY_LVL=_},1498,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/video-quality');e.default=t},1499,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.findNearestQualityLevel=function(t){for(var n=0;n<u.length;n++){var o=u[n];if(o>=t)return o}return},e.getReceiverVideoQualityLevel=function(t,u){for(var f=o.VIDEO_QUALITY_LEVELS.LOW,l=u.entries(),L=Array.isArray(l),v=0,l=L?l:l["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var y;if(L){if(v>=l.length)break;y=l[v++]}else{if((v=l.next()).done)break;y=v.value}var _=y,c=(0,n.default)(_,2),b=c[0],s=c[1];t>=b&&(f=s)}return f},e.validateMinHeightForQualityLvl=function(t){if('object'!=typeof t||Object.keys(t).map(function(t){return Number(t)}).find(function(t){return null===t||isNaN(t)||t<0}))return;for(var n=Object.keys(t).map(function(t){return Number(t)}).sort(function(t,n){return t-n}),u=new Map,f=n,l=Array.isArray(f),L=0,f=l?f:f["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(l){if(L>=f.length)break;v=f[L++]}else{if((L=f.next()).done)break;v=L.value}var y=v,_=t[y],c=o.CFG_LVL_TO_APP_QUALITY_LVL[_];if(!c)return;u.set(y,c)}return u};var n=t(r(d[1])),o=r(d[2]),u=[o.VIDEO_QUALITY_LEVELS.LOW,o.VIDEO_QUALITY_LEVELS.STANDARD,o.VIDEO_QUALITY_LEVELS.HIGH]},1500,[3,25,1498]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.getMinHeightForQualityLvlMap=function(t){return t['features/video-quality'].minHeightForQualityLvl}},1501,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]),n=r(d[2]),s=r(d[3]),S=r(d[4]),u=r(d[5]),I=t(r(d[6]));function c(t){return{type:u.SIP_GW_AVAILABILITY_CHANGED,status:t}}function f(t,o,s){var u=t,c=Array.isArray(u),f=0;for(u=c?u:u["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var l;if(c){if(f>=u.length)break;l=u[f++]}else{if((f=u.next()).done)break;l=f.value}var v=l,y=v.id,E=v.name;if(y&&E){var N=o.createVideoSIPGWSession(y,E);if(N instanceof Error){var _=N;switch(_.message){case n.JitsiSIPVideoGWStatus.ERROR_NO_CONNECTION:return void s((0,S.showErrorNotification)({descriptionKey:'videoSIPGW.errorInvite',titleKey:'videoSIPGW.errorInviteTitle'}));case n.JitsiSIPVideoGWStatus.ERROR_SESSION_EXISTS:return void s((0,S.showWarningNotification)({titleKey:'videoSIPGW.errorAlreadyInvited',titleArguments:{displayName:E}}))}return void I.default.error('Unknown error trying to create sip videogw session',_)}N.start()}else I.default.error("No display name or sip number for "+JSON.stringify(v))}}function l(t){switch(t.newState){case n.JitsiSIPVideoGWStatus.STATE_PENDING:return(0,S.showNotification)({titleKey:'videoSIPGW.pending',titleArguments:{displayName:t.displayName}},2e3);case n.JitsiSIPVideoGWStatus.STATE_FAILED:return(0,S.showErrorNotification)({titleKey:'videoSIPGW.errorInviteFailedTitle',titleArguments:{displayName:t.displayName},descriptionKey:'videoSIPGW.errorInviteFailed'});case n.JitsiSIPVideoGWStatus.STATE_OFF:if(t.failureReason===n.JitsiSIPVideoGWStatus.STATUS_BUSY)return(0,S.showErrorNotification)({descriptionKey:'videoSIPGW.busy',titleKey:'videoSIPGW.busyTitle'});t.failureReason&&I.default.error("Unknown sip videogw error "+t.newState+" "+t.failureReason)}return null}s.MiddlewareRegistry.register(function(t){var s=t.dispatch,S=t.getState;return function(t){return function(I){var v=t(I);switch(I.type){case o.CONFERENCE_WILL_JOIN:var y=S()['features/base/conference'].joining;y.on(n.JitsiConferenceEvents.VIDEO_SIP_GW_AVAILABILITY_CHANGED,function(){return s(c.apply(void 0,arguments))}),y.on(n.JitsiConferenceEvents.VIDEO_SIP_GW_SESSION_STATE_CHANGED,function(t){var o=l(t);o&&s(o)});break;case u.SIP_GW_INVITE_ROOMS:f(I.rooms,I.conference,s)}return v}}})},1502,[3,1101,879,443,706,1207,1503]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/videosipgw');e.default=t},1503,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),o=r(d[3]),u=r(d[4]),c=r(d[5]),s=r(d[6]),f=r(d[7]);function l(t,n,o){var c=n(o),s=window,f=s.history,l=s.location;if(f&&l&&f.length&&'function'==typeof f.replaceState){var h=(0,u.getURLWithoutParams)(l);l!==h&&f.replaceState(f.state,document&&document.title||'',h)}return c}function h(t,n,o){var u=t.dispatch;if(!p(t.getState,o))return n(o);u((0,s.reloadNow)())}function p(o,u){var c=u.error;if(c&&'item-not-found'===c.message&&c.details&&c.details.shard_changed){var s=o(),f=s['features/base/connection'].timeEstablished,l=s['features/base/config']._immediateReloadThreshold,h=f&&Date.now()-f,p=!f||h<=('number'==typeof l?l:1500);return(0,n.sendAnalytics)((0,n.createConnectionEvent)('failed',(0,t.default)({},c,{connectionEstablished:f,splitBrain:p,timeSinceConnectionEstablished:h}))),p}return!1}function E(t,n,o){var u,c,s=n(o);return u=(0,t.getState)(),c=u['features/base/app'].app,(0,f._getRouteToRender)(u).then(function(t){return c._navigate(t)}),s}c.MiddlewareRegistry.register(function(t){return function(n){return function(c){switch(c.type){case u.CONNECTION_ESTABLISHED:return l(t,n,c);case u.CONNECTION_FAILED:return h(t,n,c);case o.SET_ROOM:return E(t,n,c)}return n(c)}}})},1504,[3,53,905,1101,1112,443,1100,1505]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._getRouteToRender=function(o){var n=(0,c.toState)(o);if('ReactNative'===navigator.product)return l(n);return v(n)||P(n)};var o=r(d[0]),n=r(d[1]),t=r(d[2]),c=r(d[3]),s=r(d[4]),u=r(d[5]),f=r(d[6]),p=r(d[7]);function l(o){var t=h();return(0,n.isRoomValid)(o['features/base/conference'].room)?t.component=s.Conference:(0,p.isWelcomePageAppEnabled)(o)?t.component=p.WelcomePage:t.component=p.BlankPage,Promise.resolve(t)}function v(o){if((0,n.isRoomValid)(o['features/base/conference'].room)){var c=h(),p=o['features/base/connection'].locationURL;return window.location.href!==p.href?(c.href=p.href,Promise.resolve(c)):(0,u.getDeepLinkingPage)(o).then(function(o){return o?c.component=o:(0,t.isSupportedBrowser)()?c.component=s.Conference:c.component=f.UnsupportedDesktopBrowser,c})}}function P(n){var c=h();if((0,p.isWelcomePageUserEnabled)(n))(0,t.isSupportedBrowser)()?c.component=p.WelcomePage:c.component=f.UnsupportedDesktopBrowser;else{var s=window.location.href;s.endsWith('/')||(s+='/'),c.href=s+(0,o.generateRoomWithoutSeparator)()}return Promise.resolve(c)}function h(){return{component:p.BlankPage,href:void 0}}},1505,[1126,1101,1506,443,1508,1655,1656,1660]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1506,[1507]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.isBrowsersOptimal=function(o){return(interfaceConfig.OPTIMAL_BROWSERS||u).includes(o)},e.isSuboptimalBrowser=function(){return!b(interfaceConfig.OPTIMAL_BROWSERS||u)&&S()},e.isSupportedBrowser=S,e.isSupportedMobileBrowser=function(){return'android'===t.default.OS&&f.isChromiumBased()||'android'===t.default.OS&&f.isFirefox()||'ios'===t.default.OS&&f.isSafari()};var n=o(r(d[1])),t=o(r(d[2])),s=r(d[3]),f=n.default.util.browser,u=['chrome','electron','firefox','nwjs','safari'],c=[],l={chrome:f.isChrome.bind(f),chromium:f.isChromiumBased.bind(f),electron:f.isElectron.bind(f),firefox:f.isFirefox.bind(f),nwjs:f.isNWJS.bind(f),opera:f.isOpera.bind(f),safari:f.isSafari.bind(f)};function S(){return'ReactNative'!==navigator.product&&(!(!(0,s.isMobileBrowser)()&&b(interfaceConfig.UNSUPPORTED_BROWSERS||c))&&((0,s.isMobileBrowser)()||n.default.isWebRtcSupported()))}function b(o){return Boolean(o.find(function(o){var n=l[o];return!!n&&n.call(f)}))}},1507,[3,879,529,931]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1508,[1388,1509]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1509,[1510]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Conference",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"renderConferenceTimer",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"InsecureRoomNameLabel",{enumerable:!0,get:function(){return f.default}});var t=n(r(d[1])),u=n(r(d[2])),f=n(r(d[3]))},1510,[3,1511,1644,1645]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),c=n(r(d[4])),u=n(r(d[5])),s=n(r(d[6])),f=n(r(d[7])),_=n(r(d[8])),p=n(r(d[9])),b=n(r(d[10])),E=r(d[11]),h=n(r(d[12])),v=r(d[13]),C=r(d[14]),k=r(d[15]),y=r(d[16]),P=r(d[17]),V=r(d[18]),I=r(d[19]),R=r(d[20]),T=r(d[21]),x=r(d[22]),A=r(d[23]),B=r(d[24]),N=r(d[25]),w=r(d[26]),S=r(d[27]),L=r(d[28]),F=r(d[29]),D=r(d[30]),O=r(d[31]),M=n(r(d[32])),U=n(r(d[33])),H=n(r(d[34])),j=t(r(d[35])),W=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,u.default)(this,(0,s.default)(n).call(this,t)))._onClick=l._onClick.bind((0,p.default)((0,p.default)(l))),l._onHardwareBackPress=l._onHardwareBackPress.bind((0,p.default)((0,p.default)(l))),l._setToolboxVisible=l._setToolboxVisible.bind((0,p.default)((0,p.default)(l))),l}return(0,_.default)(n,t),(0,c.default)(n,[{key:"componentDidMount",value:function(){w.BackButtonRegistry.addListener(this._onHardwareBackPress)}},{key:"componentWillUnmount",value:function(){w.BackButtonRegistry.removeListener(this._onHardwareBackPress)}},{key:"render",value:function(){return b.default.createElement(k.Container,{style:j.default.conference},b.default.createElement(E.StatusBar,{barStyle:"light-content",hidden:!0,translucent:!0}),this._renderContent())}},{key:"_onClick",value:function(){this._setToolboxVisible(!this.props._toolboxVisible)}},{key:"_onHardwareBackPress",value:function(){var t,n=this;this.props._pictureInPictureEnabled?t=E.NativeModules.PictureInPicture.enterPictureInPicture():t=Promise.reject(new Error('PiP not enabled'));return t.catch(function(){n.props.dispatch((0,v.appNavigate)(void 0))}),!0}},{key:"_renderConferenceModals",value:function(){return[b.default.createElement(A.AddPeopleDialog,{key:"addPeopleDialog"}),b.default.createElement(I.Chat,{key:"chat"}),b.default.createElement(T.SharedDocument,{key:"sharedDocument"})]}},{key:"_renderConferenceNotification",value:function(){var t=this.props,n=t._calendarEnabled,l=t._reducedUI;return n&&!l?b.default.createElement(ConferenceNotification,null):void 0}},{key:"_renderContent",value:function(){var t=this.props,n=t._aspectRatio,l=t._connecting,o=t._filmstripVisible,c=t._largeVideoParticipantId,u=t._reducedUI,s=t._shouldDisplayTileView,f=t._toolboxVisible,_=o&&n===P.ASPECT_RATIO_NARROW&&!s;return u?this._renderContentForReducedUi():b.default.createElement(b.default.Fragment,null,s?b.default.createElement(x.TileView,{onClick:this._onClick}):b.default.createElement(B.LargeVideo,{onClick:this._onClick}),b.default.createElement(A.CalleeInfoContainer,null),l&&b.default.createElement(k.TintedView,null,b.default.createElement(k.LoadingIndicator,null)),b.default.createElement(E.SafeAreaView,{pointerEvents:"box-none",style:j.default.toolboxAndFilmstripContainer},f&&b.default.createElement(h.default,{colors:j.NAVBAR_GRADIENT_COLORS,end:{x:0,y:0},pointerEvents:"none",start:{x:0,y:1},style:[j.default.bottomGradient,_?j.default.gradientStretchBottom:void 0]}),b.default.createElement(M.default,null),b.default.createElement(S.Captions,{onPress:this._onClick}),s||b.default.createElement(k.Container,{style:j.default.displayNameContainer},b.default.createElement(R.DisplayNameLabel,{participantId:c})),b.default.createElement(U.default,null),b.default.createElement(F.Toolbox,null),s?void 0:b.default.createElement(x.Filmstrip,null)),b.default.createElement(E.SafeAreaView,{pointerEvents:"box-none",style:j.default.navBarSafeView},b.default.createElement(H.default,null),this._renderNotificationsContainer(),b.default.createElement(N.KnockingParticipantList,null)),b.default.createElement(V.TestConnectionInfo,null),this._renderConferenceNotification(),this._renderConferenceModals())}},{key:"_renderContentForReducedUi",value:function(){var t=this.props._connecting;return b.default.createElement(b.default.Fragment,null,b.default.createElement(B.LargeVideo,{onClick:this._onClick}),t&&b.default.createElement(k.TintedView,null,b.default.createElement(k.LoadingIndicator,null)))}},{key:"_renderNotificationsContainer",valu
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),s=n(r(d[4])),u=n(r(d[5])),f=n(r(d[6])),c=n(r(d[7])),p=n(r(d[8])),h=t(r(d[9])),y=r(d[10]),v=n(r(d[11])),A=function(t,n){return Array.isArray(n)?(console.warn("LinearGradient '"+t+"' property should be an object with fields 'x' and 'y', Array type is deprecated."),{x:n[0],y:n[1]}):n},C=(function(t){function n(){return(0,s.default)(this,n),(0,f.default)(this,(0,c.default)(n).apply(this,arguments))}return(0,p.default)(n,t),(0,u.default)(n,[{key:"setNativeProps",value:function(t){this.gradientRef.setNativeProps(t)}},{key:"render",value:function(){var t=this,n=this.props,s=n.start,u=n.end,f=n.colors,c=n.locations,p=n.useAngle,C=n.angleCenter,P=n.angle,b=(0,o.default)(n,["start","end","colors","locations","useAngle","angleCenter","angle"]);return f&&c&&f.length!==c.length&&console.warn('LinearGradient colors and locations props should be arrays of the same length'),h.default.createElement(v.default,(0,l.default)({ref:function(n){t.gradientRef=n}},b,{startPoint:A('start',s),endPoint:A('end',u),colors:f.map(y.processColor),locations:c?c.slice(0,f.length):null,useAngle:p,angleCenter:A('angleCenter',C),angle:P}))}}]),n})(h.Component);e.default=C,C.defaultProps={start:{x:.5,y:0},end:{x:.5,y:1}}},1512,[2,3,24,55,4,5,6,9,10,59,15,1513]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).requireNativeComponent)('BVLinearGradient');e.default=t},1513,[15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1514,[1436]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Toolbox",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1515,[3,1516]);
Merge 4.13.0 into master (#2728)
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
* [FIX] Share extension and save image not working on Android 10 (#2651)
* Bump version to 4.13.0 (#2657)
* [FIX] Update Loading logo (#2658)
* [NEW] Support client certificates for SSL (two-way authentication) (Android) (#2624)
* wip: Android SSL Pinning
* Use own SSLPinningModule
* wip: Use Rocket.Chat own react-native
* wip: Fresco Images using custom OkHttpClient
* wip: react-native-webview onReceivedClientCertRequest
* feat: Save Images of a SSL Pinning protected server
* chore: SSLPinning package as a interface to iOS & Android implementations
* chore: update glide
* feat: load images under a client ssl certificate protected server
* chore: remove patch
* feat: Audio & Video under a SSL Client protected server
* fix: Unpin certificate when change server
* feat: Fast Image as a patch
* chore: update fast-image
* Fix merge
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel actions (#2644)
* room roles
* handle owner
* endpoints
* Leader and Moderator
* Remove user from room
* stash ignore
* Add subscription.ignored column
* ignore user
* Fix icons
* I18n
* Minor i18n fixes
* Direct Message and open action sheet after a normal tap
* Fix icon
* stash isIgnored
* isManualUnignored message
* Fix update
* Ignored
* Mute, moderator, leader, owner, remove from room
* ignore
* Tests
* pt-BR
* Update pods
* Apply requested changes
* Add RC version on requests
* [NEW] Support RTL (#2656)
* wip: RTL (iOS)
* wip: RTL (Android)
* wip: reload bundle when change between RTL languages
* fix: Stack Animation on Android
* fix: update snapshot
* fix: Swipe Room Actions in RTL mode
* fix: snapshots
* Move isRTL to i18n
* Fix styling
* Update tests
* Update pods
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Initial users' status is not fetched (#2664)
* [FIX] Messages overlapping and emoji keyboard not opening (#2670)
* Replace keyboard libs for react-native-ui-lib
* Apply Jitsi branch
* Require keyboard on bundle
* Update ui-lib
* chore: update deps
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] Force normalized params for 2FA (#2683)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Thread message flickering while thread parent isn't found (#2676)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Light theme not working on Android with Dark Theme set (#2675)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App not prompting join code for password protected channels (#2514)
* Adding joinCode parameter
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Insert join code input
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add joinCode field on db
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add label i18 pt-br and en-us
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add insert join code text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Fix atribute name
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add join text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Fix attributes joinCode, joinCodeRequired and pass attribute param in navigation
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Fixing attribute joinCodeRequired pass to goRoom
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Changed textinput style
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Delete not necessary attribute
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Fixing input style
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Undo unncessary changes
* use a join code modal
* tests: e2e tests to join protected channel
* fix: undo unnecessary change
* tests: cancel join code
* Remove some tests
* Minor fixes
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: youssef-md <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Add Arabic (#2537)
* Arabic language setup
* Added arabic translation
* Arabic translation Proofreading
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18N] Add missing zh_TW and zh_CN strings (#2680)
* feat(i18n): add some missing strings and improve some translation
* fix: add missing server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add username on status messages (#2553)
* 1689 - missing user name for status messages
* 1689 - missing user name for status messages. Fixed broken e2e test "should pin message".
* Minor tweak
* Remove center style
* Small refactor on User
* Remove toLowerCase
* Update tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Filenames are incorrect in non-latin alphabets on upload (#2671)
* fix: filename on react-native-image-crop-picker
* fix: use rn-fetch-blob to upload files
* fix: FileUpload as a service
* fix: cancel upload on iOS
* fix: file upload from share extension
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Ease white labelling for Android (#2685)
* improve white labelling for Android
* Move application ID to gradle properties
* Fix CI
* Point foss sufix to main app
* Use npx on android-whitelabel script
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Chats order (#2688)
* Persist highest value on subscription.roomUpdatedAt
* Update tests
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Re-enable Jitsi Chat (#2687)
* Fix main jitsi
* Fix iOS
* Clear build.gradle cache
* Don't restore gradle
* cache is back
* Use master
* Point to react-native-jitsi-meet#master
* [CHORE] Build official apps on CI (#2701)
* Duplicated target and changed Bridging Header
* Display name
* Unnecessary dumb swift file removed
* Buildable name
* Reorder Info.plist
* Rename Official target's bundle id
* Ignore .mobileprovision
* Fix provisioning of official app
* Starting signing
* stash fastfile
* starting official ci iOS
* Uncomment Fastfile keychain
* Fix CI config
* allowProvisioningUpdates
* Changing AppIcon and Splash Screen
* Remove unnecessary folder inside of Images.xcassets
* Reorder notificationservice and shareextension plists
* Fix signing
* Manual signing style for official
* Split official signing
* Update project provisioning
* Use ENV as profile
* Output match
* Keys
* TestFlight refactor
* Setting up android
* android-official-play-build job
* Start removing unnecessary fastlane tasks on Android
* Trying to refactor Android jobs
* android-env
* Remove foss build for now
* Fork
* Fix if conditions
* Fix push
* ios-build command
* Rename Android builds
* Upload dSYMs
* Refactoring workflow
* Reorder upload-to-testflight
* upload-to-google-play-beta command
* Fix ci
* Fix android fork build
* Fix keystore
* Fix options on fastlane android
* Fix keystore
* Check isOfficial on iOS
* Check isOfficial on db
* Remove unused imports
* Database names on Android
* Tag fix
* Minor fixes
* Set IS_OFFICIAL on CI
* Fix detox
* follow review suggestions
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [i18n] Update fr (#2697)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Update fr (#2705)
Typo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Empty space on Messagebox (#2704)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Yarn android scripts (#2716)
* [CHORE] Rename Experimental iOS lane (#2717)
* Move build_fork to the end
* Rename release to build_experimental
* [IMPROVEMENT] Use class variable instead of state for List's animated (#2718)
* [FIX] Bottom sheet being hidden sometimes (#2722)
* [IMPROVEMENT] Match background and text mention colors (#2723)
* [FIX] App freezing if Markdown preview contains sequential empty spaces (#2726)
* Remove sequential empty spaces from Markdown preview
* Use Markdown preview on RepliedThread
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Abdullah Alhamoud <10301923+abalhamoud@users.noreply.github.com>
Co-authored-by: Dave Koo <dkoo761@gmail.com>
Co-authored-by: Fazil Boudjelal <fazildiablou@hotmail.fr>
Co-authored-by: Lucas Dousse <Cormoran96@users.noreply.github.com>
2020-12-21 15:55:40 +00:00
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=l(r(d[2])),s=l(r(d[3])),n=l(r(d[4])),u=l(r(d[5])),y=l(r(d[6])),f=l(r(d[7])),c=l(r(d[8])),b=t(r(d[9])),v=r(d[10]),h=r(d[11]),_=r(d[12]),p=r(d[13]),S=(r(d[14]),r(d[15])),B=r(d[16]),E=l(r(d[17])),C=l(r(d[18])),T=l(r(d[19])),x=l(r(d[20])),k=l(r(d[21])),O=(function(t){function l(){return(0,n.default)(this,l),(0,y.default)(this,(0,f.default)(l).apply(this,arguments))}return(0,c.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){return b.default.createElement(_.Container,{style:k.default.toolbox,visible:this.props._visible},this._renderToolbar())}},{key:"_getChatButtonToggledStyle",value:function(t){var l=this.props._styles;return Array.isArray(t.style)?(0,s.default)({},t,{style:(0,o.default)(t.style).concat([l.chatButtonOverride.toggled])}):(0,s.default)({},t,{style:[t.style,l.chatButtonOverride.toggled]})}},{key:"_renderToolbar",value:function(){var t=this.props._styles,l=t.buttonStyles,o=t.buttonStylesBorderless,s=t.hangupButtonStyles,n=t.toggledButtonStyles;return b.default.createElement(v.View,{accessibilityRole:"toolbar",pointerEvents:"box-none",style:k.default.toolbar},b.default.createElement(S.ChatButton,{styles:o,toggledStyles:this._getChatButtonToggledStyle(n)}),b.default.createElement(E.default,{styles:l,toggledStyles:n}),b.default.createElement(C.default,{styles:s}),b.default.createElement(T.default,{styles:l,toggledStyles:n}),b.default.createElement(x.default,{styles:o,toggledStyles:n}))}}]),l})(b.PureComponent);var A=(0,p.connect)(function(t){return{_styles:h.ColorSchemeRegistry.get(t,'Toolbox'),_visible:(0,B.isToolboxVisible)(t)}})(O);e.default=A},1516,[2,3,31,53,4,5,6,9,10,59,15,438,539,443,522,1369,1316,1517,1518,1519,1520,1595]);
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),o=t(r(d[2])),n=t(r(d[3])),l=t(r(d[4])),s=t(r(d[5])),c=t(r(d[6])),f=t(r(d[7])),b=r(d[8]),h=r(d[9]),_=r(d[10]),y=r(d[11]),p=r(d[12]),A=r(d[13]),v=r(d[14]),M=(function(t){function h(t){var o;return(0,u.default)(this,h),(o=(0,n.default)(this,(0,l.default)(h).call(this,t))).accessibilityLabel='toolbar.accessibilityLabel.mute',o.label='toolbar.mute',o.tooltip='toolbar.mute',o._onKeyboardShortcut=o._onKeyboardShortcut.bind((0,f.default)((0,f.default)(o))),o}return(0,c.default)(h,t),(0,o.default)(h,[{key:"componentDidMount",value:function(){'undefined'==typeof APP||APP.keyboardshortcut.registerShortcut('M',null,this._onKeyboardShortcut,'keyboardShortcuts.mute')}},{key:"componentWillUnmount",value:function(){'undefined'==typeof APP||APP.keyboardshortcut.unregisterShortcut('M')}},{key:"_isAudioMuted",value:function(){return this.props._audioMuted}},{key:"_onKeyboardShortcut",value:function(){(0,b.sendAnalytics)((0,b.createShortcutEvent)(b.AUDIO_MUTE,b.ACTION_SHORTCUT_TRIGGERED,{enable:!this._isAudioMuted()})),(0,s.default)((0,l.default)(h.prototype),"_handleClick",this).call(this)}},{key:"_setAudioMuted",value:function(t){this.props.dispatch((0,v.muteLocal)(t))}},{key:"_isDisabled",value:function(){return this.props._disabled}}]),h})(p.AbstractAudioMuteButton);var k=(0,h.translate)((0,y.connect)(function(t){return{_audioMuted:(0,A.isLocalTrackMuted)(t['features/base/tracks'],_.MEDIA_TYPE.AUDIO),_disabled:t['features/base/config'].startSilent}})(M));e.default=k},1517,[3,4,5,6,9,46,10,8,905,726,887,443,970,903,1367]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),p=t(r(d[6])),s=r(d[7]),f=r(d[8]),h=r(d[9]),b=r(d[10]),v=r(d[11]),_=(function(t){function b(t){var o;return(0,n.default)(this,b),(o=(0,u.default)(this,(0,l.default)(b).call(this,t))).accessibilityLabel='toolbar.accessibilityLabel.hangup',o.label='toolbar.hangup',o.tooltip='toolbar.hangup',o._hangup=p.default.once(function(){(0,s.sendAnalytics)((0,s.createToolbarEvent)('hangup')),'ReactNative'===navigator.product?o.props.dispatch((0,f.appNavigate)(void 0)):o.props.dispatch((0,h.disconnect)(!0))}),o}return(0,c.default)(b,t),(0,o.default)(b,[{key:"_doHangup",value:function(){this._hangup()}}]),b})(r(d[12]).AbstractHangupButton),y=(0,b.translate)((0,v.connect)()(_));e.default=y},1518,[3,4,5,6,9,10,445,905,1100,1112,726,443,970]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=t(r(d[1])),u=t(r(d[2])),n=t(r(d[3])),l=t(r(d[4])),s=t(r(d[5])),c=t(r(d[6])),f=t(r(d[7])),v=t(r(d[8])),y=r(d[9]),b=r(d[10]),_=r(d[11]),h=r(d[12]),p=r(d[13]),M=r(d[14]),T=r(d[15]),A=r(d[16]),E=(function(t){function _(t){var u;return(0,o.default)(this,_),(u=(0,n.default)(this,(0,l.default)(_).call(this,t))).accessibilityLabel='toolbar.accessibilityLabel.videomute',u.label='toolbar.videomute',u.tooltip='toolbar.videomute',u._onKeyboardShortcut=u._onKeyboardShortcut.bind((0,f.default)((0,f.default)(u))),u}return(0,c.default)(_,t),(0,u.default)(_,[{key:"componentDidMount",value:function(){'undefined'==typeof APP||APP.keyboardshortcut.registerShortcut('V',null,this._onKeyboardShortcut,'keyboardShortcuts.videoMute')}},{key:"componentWillUnmount",value:function(){'undefined'==typeof APP||APP.keyboardshortcut.unregisterShortcut('V')}},{key:"_isDisabled",value:function(){return this.props._videoDisabled}},{key:"_isVideoMuted",value:function(){return this.props._videoMuted}},{key:"_onKeyboardShortcut",value:function(){(0,y.sendAnalytics)((0,y.createShortcutEvent)(y.VIDEO_MUTE,y.ACTION_SHORTCUT_TRIGGERED,{enable:!this._isVideoMuted()})),(0,s.default)((0,l.default)(_.prototype),"_handleClick",this).call(this)}},{key:"_setVideoMuted",value:function(t){(0,y.sendAnalytics)((0,y.createToolbarEvent)(y.VIDEO_MUTE,{enable:t})),this.props._audioOnly&&this.props.dispatch((0,b.setAudioOnly)(!1,!0));var o=this.props._videoMediaType;this.props.dispatch((0,p.setVideoMuted)(t,o,p.VIDEO_MUTISM_AUTHORITY.USER,!0)),'undefined'==typeof APP||APP.UI.emitEvent(v.default.VIDEO_MUTED,t,!0)}}]),_})(T.AbstractVideoMuteButton);var P=(0,h.translate)((0,M.connect)(function(t){var o=t['features/base/audio-only'].enabled,u=t['features/base/tracks'];return{_audioOnly:Boolean(o),_videoDisabled:!(0,_.hasAvailableDevices)(t,'videoInput'),_videoMediaType:(0,A.getLocalVideoType)(u),_videoMuted:(0,A.isLocalVideoTrackMuted)(u)}})(E));e.default=P},1519,[3,4,5,6,9,46,10,8,1144,905,1142,1399,726,887,443,970,903]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),c=t(r(d[4])),u=t(r(d[5])),s=r(d[6]),f=r(d[7]),b=r(d[8]),h=r(d[9]),p=r(d[10]),v=t(r(d[11])),y=(function(t){function f(){var t,n;(0,l.default)(this,f);for(var u=arguments.length,s=new Array(u),h=0;h<u;h++)s[h]=arguments[h];return(n=(0,o.default)(this,(t=(0,c.default)(f)).call.apply(t,[this].concat(s)))).accessibilityLabel='toolbar.accessibilityLabel.moreActions',n.icon=b.IconMenuThumb,n.label='toolbar.moreActions',n}return(0,u.default)(f,t),(0,n.default)(f,[{key:"_handleClick",value:function(){this.props.dispatch((0,s.openDialog)(v.default))}}]),f})(p.AbstractButton),_=(0,f.translate)((0,h.connect)()(y));e.default=_},1520,[3,4,5,6,9,10,531,726,548,443,970,1521]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l,o=n(r(d[2])),u=n(r(d[3])),s=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),h=n(r(d[7])),p=n(r(d[8])),_=t(r(d[9])),E=r(d[10]),S=n(r(d[11])),M=r(d[12]),w=r(d[13]),v=r(d[14]),y=r(d[15]),b=(r(d[16]),r(d[17])),C=r(d[18]),T=r(d[19]),B=r(d[20]),k=r(d[21]),x=r(d[22]),O=r(d[23]),D=r(d[24]),L=r(d[25]),R=n(r(d[26])),I=n(r(d[27])),P=n(r(d[28])),V=n(r(d[29])),H=n(r(d[30])),j=n(r(d[31])),A=(function(t){function n(t){var l;return(0,u.default)(this,n),(l=(0,c.default)(this,(0,f.default)(n).call(this,t))).state={scrolledToTop:!0,showMore:!1},l._onCancel=l._onCancel.bind((0,p.default)((0,p.default)(l))),l._onSwipe=l._onSwipe.bind((0,p.default)((0,p.default)(l))),l._onToggleMenu=l._onToggleMenu.bind((0,p.default)((0,p.default)(l))),l._renderMenuExpandToggle=l._renderMenuExpandToggle.bind((0,p.default)((0,p.default)(l))),l}return(0,h.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=this.props._bottomSheetStyles,n=this.state.showMore,l={afterClick:this._onCancel,showLabel:!0,styles:t.buttons},u=(0,o.default)({},l,{afterClick:this._onToggleMenu,visible:!n});return _.default.createElement(w.BottomSheet,{onCancel:this._onCancel,onSwipe:this._onSwipe,renderHeader:this._renderMenuExpandToggle},_.default.createElement(B.AudioRouteButton,l),_.default.createElement(C.InviteButton,l),_.default.createElement(I.default,l),_.default.createElement(V.default,l),_.default.createElement(T.LobbyModeButton,l),_.default.createElement(P.default,u),_.default.createElement(S.default,{collapsed:!n},_.default.createElement(H.default,l),_.default.createElement(D.TileViewButton,l),_.default.createElement(k.RecordButton,l),_.default.createElement(k.LiveStreamButton,l),_.default.createElement(L.VideoShareButton,l),_.default.createElement(x.RoomLockButton,l),_.default.createElement(O.ClosedCaptionButton,l),_.default.createElement(b.SharedDocumentButton,l),_.default.createElement(R.default,l)))}},{key:"_renderMenuExpandToggle",value:function(){return _.default.createElement(E.View,{style:[this.props._bottomSheetStyles.sheet,j.default.expandMenuContainer]},_.default.createElement(E.TouchableOpacity,{onPress:this._onToggleMenu},_.default.createElement(v.IconDragHandle,{style:this.props._bottomSheetStyles.expandIcon})))}},{key:"_onCancel",value:function(){return!!this.props._isOpen&&(this.props.dispatch((0,w.hideDialog)(l)),!0)}},{key:"_onSwipe",value:function(t){var n=this.state.showMore;switch(t){case'up':return!n&&this.setState({showMore:!0}),!n;case'down':return n&&this.setState({showMore:!1}),n}}},{key:"_onToggleMenu",value:function(){this.setState({showMore:!this.state.showMore})}}]),n})(_.PureComponent);var q=l=(0,y.connect)(function(t){return{_bottomSheetStyles:M.ColorSchemeRegistry.get(t,'BottomSheet'),_isOpen:(0,w.isDialogOpen)(t,l)}})(A);e.default=q},1521,[2,3,53,4,5,6,9,10,8,59,15,1522,438,531,548,443,522,1482,1190,1426,1527,1532,1589,1103,1407,949,1590,1591,1592,1593,1594,1595]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),h=n(r(d[6])),p=t(r(d[7])),c=n(r(d[8])),f=r(d[9]),v=r(d[10]),y=['easeInOut','easeOut','easeIn'],H=(function(t){function n(t){var o;return(0,s.default)(this,n),(o=(0,l.default)(this,(0,u.default)(n).call(this,t))).contentHandle=null,o._handleRef=function(t){o.contentHandle=t},o._handleLayoutChange=function(t){var n=t.nativeEvent.layout.height;o.state.animating||o.props.collapsed||o.state.measuring||o.state.contentHeight===n||(o.state.height.setValue(n),o.setState({contentHeight:n}))},o.state={measuring:!1,measured:!1,height:new f.Animated.Value(t.collapsedHeight),contentHeight:0,animating:!1},o}return(0,h.default)(n,t),(0,o.default)(n,[{key:"componentDidUpdate",value:function(t){var n=this;t.collapsed!==this.props.collapsed?this.setState({measured:!1},function(){return n._componentDidUpdate(t)}):this._componentDidUpdate(t)}},{key:"componentWillUnmount",value:function(){this.unmounted=!0}},{key:"_componentDidUpdate",value:function(t){t.collapsed!==this.props.collapsed?this._toggleCollapsed(this.props.collapsed):this.props.collapsed&&t.collapsedHeight!==this.props.collapsedHeight&&this.state.height.setValue(this.props.collapsedHeight)}},{key:"_measureContent",value:function(t){var n=this;this.setState({measuring:!0},function(){requestAnimationFrame(function(){n.contentHandle?n.contentHandle.getNode().measure(function(s,o,l,u){n.setState({measuring:!1,measured:!0,contentHeight:u},function(){return t(u)})}):n.setState({measuring:!1},function(){return t(n.props.collapsedHeight)})})})}},{key:"_toggleCollapsed",value:function(t){var n=this;if(t)this._transitionToHeight(this.props.collapsedHeight);else{if(!this.contentHandle)return void(this.state.measured&&this._transitionToHeight(this.state.contentHeight));this._measureContent(function(t){n._transitionToHeight(t)})}}},{key:"_transitionToHeight",value:function(t){var n=this,s=this.props.duration,o=this.props.easing;if('string'==typeof o){for(var l,u=!1,h=0;h<y.length;h++)if(l=y[h],o.substr(0,l.length)===l){o=o.substr(l.length,1).toLowerCase()+o.substr(l.length+1),l=l.substr(4,1).toLowerCase()+l.substr(5),o=f.Easing[l](f.Easing[o||'ease']),u=!0;break}if(u||(o=f.Easing[o]),!o)throw new Error('Invalid easing type "'+this.props.easing+'"')}this._animation&&this._animation.stop(),this.setState({animating:!0}),this._animation=f.Animated.timing(this.state.height,{toValue:t,duration:s,easing:o}).start(function(){n.unmounted||n.setState({animating:!1},function(){n.unmounted||n.props.onAnimationEnd()})})}},{key:"render",value:function(){var t=this.props,n=t.collapsed,s=t.enablePointerEvents,o=this.state,l=o.height,u=o.contentHeight,h=o.measuring,c=o.measured,v=!h&&(c||n)&&{overflow:'hidden',height:l},y={};return h?(y.position='absolute',y.opacity=0):'center'===this.props.align?y.transform=[{translateY:l.interpolate({inputRange:[0,u],outputRange:[u/-2,0]})}]:'bottom'===this.props.align&&(y.transform=[{translateY:l.interpolate({inputRange:[0,u],outputRange:[-u,0]})}]),p.default.createElement(f.Animated.View,{style:v,pointerEvents:!s&&n?'none':'auto'},p.default.createElement(f.Animated.View,{ref:this._handleRef,style:[this.props.style,y],onLayout:this.state.animating?void 0:this._handleLayoutChange},this.props.children))}}]),n})(p.Component);e.default=H,H.propTypes={align:c.default.oneOf(['top','center','bottom']),collapsed:c.default.bool,collapsedHeight:c.default.number,enablePointerEvents:c.default.bool,duration:c.default.number,easing:c.default.oneOfType([c.default.string,c.default.func]),style:v.ViewPropTypes.style,onAnimationEnd:c.default.func,children:c.default.node},H.defaultProps={align:'top',collapsed:!0,collapsedHeight:0,enablePointerEvents:!1,duration:300,easing:'easeOutCubic',onAnimationEnd:function(){return null}}},1522,[2,3,4,5,6,9,10,59,1523,15,1526]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])()},1523,[1524]);
__d(function(g,r,i,a,m,e,d){'use strict';var n=r(d[0]);function t(){}function o(){}o.resetWarningCache=t,m.exports=function(){function p(t,o,p,c,s,y){if(y!==n){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name='Invariant Violation',f}}function c(){return p}p.isRequired=p;var s={array:p,bool:p,func:p,number:p,object:p,string:p,symbol:p,any:p,arrayOf:c,element:p,elementType:p,instanceOf:c,node:p,objectOf:c,oneOf:c,oneOfType:c,shape:c,exact:c,checkPropTypes:o,resetWarningCache:t};return s.PropTypes=s,s}},1524,[1525]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},1525,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.ViewPropTypes=void 0;var p=r(d[0]),o=p.ViewPropTypes||p.View.propTypes;e.ViewPropTypes=o},1526,[15]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1527,[1528]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AudioRouteButton",{enumerable:!0,get:function(){return u.default}});var u=t(r(d[1]))},1528,[3,1529]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),n=t(r(d[4])),c=t(r(d[5])),f=r(d[6]),s=r(d[7]),b=r(d[8]),h=r(d[9]),p=r(d[10]),v=t(r(d[11])),y=(function(t){function s(){var t,o;(0,l.default)(this,s);for(var c=arguments.length,f=new Array(c),h=0;h<c;h++)f[h]=arguments[h];return(o=(0,u.default)(this,(t=(0,n.default)(s)).call.apply(t,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.audioRoute',o.icon=b.IconAudioRoute,o.label='toolbar.audioRoute',o}return(0,c.default)(s,t),(0,o.default)(s,[{key:"_handleClick",value:function(){this.props.dispatch((0,f.openDialog)(v.default))}}]),s})(p.AbstractButton),_=(0,s.translate)((0,h.connect)()(y));e.default=_},1529,[3,4,5,6,9,10,531,726,548,443,970,1530]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o,l=n(r(d[2])),c=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),v=n(r(d[6])),f=n(r(d[7])),y=n(r(d[8])),h=n(r(d[9])),p=t(r(d[10])),E=r(d[11]),S=r(d[12]),D=r(d[13]),_=r(d[14]),b=r(d[15]),x=r(d[16]),k=r(d[17]),T=n(r(d[18])),A=E.NativeModules.AudioMode,C={BLUETOOTH:{icon:b.IconDeviceBluetooth,text:'audioDevices.bluetooth',type:'BLUETOOTH'},EARPIECE:{icon:b.IconDeviceEarpiece,text:'audioDevices.phone',type:'EARPIECE'},HEADPHONES:{icon:b.IconDeviceHeadphone,text:'audioDevices.headphones',type:'HEADPHONES'},SPEAKER:{icon:b.IconDeviceSpeaker,text:'audioDevices.speaker',type:'SPEAKER'}},I=(function(t){function n(t){var o;return(0,c.default)(this,n),(o=(0,u.default)(this,(0,s.default)(n).call(this,t))).state={devices:[]},o._onCancel=o._onCancel.bind((0,y.default)((0,y.default)(o))),A.updateDeviceList&&A.updateDeviceList(),o}return(0,f.default)(n,t),(0,v.default)(n,null,[{key:"getDerivedStateFromProps",value:function(t){var n=t._devices;if(!n)return null;var o=[],c=n,u=Array.isArray(c),s=0;for(c=u?c:c["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var v;if(u){if(s>=c.length)break;v=c[s++]}else{if((s=c.next()).done)break;v=s.value}var f=v,y=C[f.type],p='BLUETOOTH'===f.type&&f.name?f.name:y.text;if(y){var E=(0,l.default)({},y,{selected:Boolean(f.selected),text:t.t(p),uid:f.uid});o.push(E)}}return{devices:h.default.sortBy(o,'text')}}}]),(0,v.default)(n,[{key:"_hide",value:function(){this.props.dispatch((0,D.hideDialog)(o))}},{key:"_onCancel",value:function(){this._hide()}},{key:"_onSelectDeviceFn",value:function(t){var n=this;return function(){n._hide(),A.setAudioDevice(t.uid||t.type)}}},{key:"_renderDevice",value:function(t){var n=this.props._bottomSheetStyles,o=t.icon,l=t.selected,c=t.text,u=l?T.default.selectedText:{};return p.default.createElement(E.TouchableHighlight,{key:t.type,onPress:this._onSelectDeviceFn(t),underlayColor:k.ColorPalette.overflowMenuItemUnderlay},p.default.createElement(E.View,{style:T.default.deviceRow},p.default.createElement(b.Icon,{src:o,style:[T.default.deviceIcon,n.buttons.iconStyle,u]}),p.default.createElement(E.Text,{style:[T.default.deviceText,n.buttons.labelStyle,u]},c)))}},{key:"_renderNoDevices",value:function(){var t=this.props,n=t._bottomSheetStyles,o=t.t;return p.default.createElement(E.View,{style:T.default.deviceRow},p.default.createElement(b.Icon,{src:C.SPEAKER.icon,style:[T.default.deviceIcon,n.buttons.iconStyle]}),p.default.createElement(E.Text,{style:[T.default.deviceText,n.buttons.labelStyle]},o('audioDevices.none')))}},{key:"render",value:function(){var t;return t=0===this.state.devices.length?this._renderNoDevices():this.state.devices.map(this._renderDevice,this),p.default.createElement(D.BottomSheet,{onCancel:this._onCancel},t)}}]),n})(p.Component);var P=o=(0,_.translate)((0,x.connect)(function(t){return{_bottomSheetStyles:S.ColorSchemeRegistry.get(t,'BottomSheet'),_devices:t['features/mobile/audio-mode'].devices}})(I));e.default=P},1530,[2,3,53,4,6,9,5,10,8,445,59,15,438,531,726,548,443,522,1531]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),o=r(d[1]),l=(0,o.createStyleSheet)({deviceRow:{alignItems:'center',flexDirection:'row',height:t.MD_ITEM_HEIGHT},deviceIcon:{color:o.ColorPalette.white,fontSize:24},deviceText:{color:o.ColorPalette.white,fontSize:16,marginLeft:32},selectedText:{color:o.ColorPalette.blue}});e.default=l},1531,[531,522]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},1532,[1445,1533,1447,1448]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1533,[1534,1546,1572]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1534,[1535]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"RecordingExpandedLabel",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"RecordingLabel",{enumerable:!0,get:function(){return u.default}});var t=n(r(d[1])),u=n(r(d[2]))},1535,[3,1536,1544]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),l=r(d[6]),f=r(d[7]),p=r(d[8]),R=r(d[9]),_=r(d[10]),C=r(d[11]),L=(function(t){function l(){return(0,n.default)(this,l),(0,o.default)(this,(0,u.default)(l).apply(this,arguments))}return(0,c.default)(l,t),(0,s.default)(l,[{key:"_getColor",value:function(){switch(this.props.mode){case p.JitsiRecordingConstants.mode.STREAM:return C.LIVE_LABEL_COLOR;case p.JitsiRecordingConstants.mode.FILE:return C.REC_LABEL_COLOR;default:return null}}},{key:"_getLabel",value:function(){var t=this.props,n=t._status,s=t.mode,o=t.t,u='recording',c='expandedOn';switch(s){case p.JitsiRecordingConstants.mode.STREAM:c='liveStreaming';break;case p.JitsiRecordingConstants.mode.FILE:c='recording'}switch(n){case p.JitsiRecordingConstants.status.OFF:u='expandedOff';break;case p.JitsiRecordingConstants.status.PENDING:u='expandedPending';break;case p.JitsiRecordingConstants.status.ON:u='expandedOn'}return o(c+"."+u)}}]),l})(f.ExpandedLabel);var v=(0,l.translate)((0,R.connect)(function(t,n){var s=n.mode;return{_status:(0,_.getSessionStatusToShow)(t,s)}})(L));e.default=v},1536,[3,4,5,6,9,10,726,1537,879,443,1448,1543]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1537,[1538]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"CircularLabel",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"ExpandedLabel",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},1538,[3,1539,1542]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),c=r(d[7]),p=t(r(d[8])),v=r(d[9]),h=t(r(d[10])),y=t(r(d[11])),A=(function(t){function h(t){var s;return(0,n.default)(this,h),(s=(0,o.default)(this,(0,l.default)(h).call(this,t))).state={pulseAnimation:new c.Animated.Value(0)},s}return(0,u.default)(h,t),(0,s.default)(h,[{key:"componentDidMount",value:function(){this._maybeToggleAnimation({},this.props)}},{key:"componentDidUpdate",value:function(t){this._maybeToggleAnimation(t,this.props)}},{key:"render",value:function(){var t=this.props,n=t.icon,s=t.label,o=t.status,l=t.style,u=null;switch(o){case"in_progress":u={opacity:this.state.pulseAnimation};break;case"off":u=y.default.labelOff}var h=n?f.default.createElement(p.default,{src:n,style:y.default.indicatorIcon}):f.default.createElement(c.Text,{style:y.default.indicatorText},s);return f.default.createElement(c.Animated.View,{style:[(0,v.combineStyles)(y.default.indicatorContainer,l),u]},h)}},{key:"_maybeToggleAnimation",value:function(t,n){var s=t.status,o=n.status,l=this.state.pulseAnimation;"in_progress"===o&&"in_progress"!==s?(this.animationReference=c.Animated.loop(c.Animated.sequence([c.Animated.timing(l,{delay:500,toValue:1,useNativeDriver:!0}),c.Animated.timing(l,{toValue:.3,useNativeDriver:!0})])),this.animationReference.start()):this.animationReference&&"in_progress"!==o&&"in_progress"===s&&this.animationReference.stop()}}]),h})(h.default);e.default=A},1539,[3,4,5,6,9,10,59,15,550,522,1540,1541]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),o=(function(t){function o(){return(0,u.default)(this,o),(0,n.default)(this,(0,f.default)(o).apply(this,arguments))}return(0,l.default)(o,t),o})(r(d[5]).Component);e.default=o},1540,[3,4,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.LABEL_SIZE=e.LABEL_MARGIN=e.DEFAULT_COLOR=void 0;var o=r(d[0]);e.DEFAULT_COLOR="#808080";e.LABEL_MARGIN=5;e.LABEL_SIZE=36;var t={expandedLabelArrow:{backgroundColor:o.ColorPalette.blue,height:15,transform:[{rotate:'45deg'},{translateX:10}],width:15},expandedLabelContainer:{backgroundColor:o.ColorPalette.blue,borderColor:o.ColorPalette.blue,borderRadius:6,marginHorizontal:o.BoxModel.margin,padding:o.BoxModel.padding},expandedLabelText:{color:o.ColorPalette.white},expandedLabelWrapper:{alignItems:'flex-end',flexDirection:'column'},indicatorContainer:{alignItems:'center',backgroundColor:"#808080",borderRadius:18,borderWidth:0,flex:0,height:36,justifyContent:'center',margin:5,opacity:.6,width:36},indicatorIcon:{fontSize:24},indicatorText:{color:o.ColorPalette.white,fontSize:10},labelOff:{opacity:.3}};e.default=t},1541,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),A=t(r(d[9])),L=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,u.default)(this,(0,s.default)(n).call(this,t))).state={opacityAnimation:new p.Animated.Value(0),showArrow:!1},l}return(0,f.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){var t=this;p.Animated.decay(this.state.opacityAnimation,{toValue:1,velocity:1,useNativeDriver:!0}).start(function(n){n.finished&&t.setState({showArrow:!0})})}},{key:"render",value:function(){var t=this.props.parentPosition-A.LABEL_MARGIN-A.LABEL_SIZE/2;return c.default.createElement(p.Animated.View,{style:[A.default.expandedLabelWrapper,{opacity:this.state.opacityAnimation}]},c.default.createElement(p.View,{style:[A.default.expandedLabelArrow,{backgroundColor:this._getColor()||A.DEFAULT_COLOR,marginRight:t+0}]}),c.default.createElement(p.View,{style:[A.default.expandedLabelContainer,{backgroundColor:this._getColor()||A.DEFAULT_COLOR}]},c.default.createElement(p.Text,{style:A.default.expandedLabelText},this._getLabel())))}},{key:"_getColor",value:function(){return A.DEFAULT_COLOR}}]),n})(c.Component);e.default=L},1542,[2,3,4,5,6,9,10,59,15,1541]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.REC_LABEL_COLOR=e.LIVE_LABEL_COLOR=void 0;var o=r(d[0]),L=o.ColorPalette.blue;e.LIVE_LABEL_COLOR=L;var t=o.ColorPalette.red;e.REC_LABEL_COLOR=t;var l=(0,o.createStyleSheet)({indicatorLive:{backgroundColor:L},indicatorRecording:{backgroundColor:t}});e.default=l},1543,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=s(r(d[2])),o=s(r(d[3])),u=s(r(d[4])),l=s(r(d[5])),c=s(r(d[6])),f=s(r(d[7])),p=r(d[8]),h=r(d[9]),_=r(d[10]),b=r(d[11]),v=t(r(d[12])),R=s(r(d[13])),y=(function(t){function s(){return(0,n.default)(this,s),(0,u.default)(this,(0,l.default)(s).apply(this,arguments))}return(0,c.default)(s,t),(0,o.default)(s,[{key:"_renderLabel",value:function(){var t;switch(this.props.mode){case _.JitsiRecordingConstants.mode.STREAM:t=R.default.indicatorLive;break;case _.JitsiRecordingConstants.mode.FILE:t=R.default.indicatorRecording;break;default:return null}var s='on';switch(this.props._status){case _.JitsiRecordingConstants.status.PENDING:s='in_progress';break;case _.JitsiRecordingConstants.status.OFF:s='off'}return f.default.createElement(h.CircularLabel,{label:this.props.t(this._getLabelKey()),status:s,style:t})}}]),s})(v.default),C=(0,p.translate)((0,b.connect)(v._mapStateToProps)(y));e.default=C},1544,[2,3,4,5,6,9,10,59,726,1537,879,443,1545,1543]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t,s){var n=s.mode;return{_status:(0,p.getSessionStatusToShow)(t,n)}},e.default=void 0;var s=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),o=t(r(d[4])),l=t(r(d[5])),c=r(d[6]),f=r(d[7]),p=r(d[8]),_=(function(t){function c(t){var o;return(0,s.default)(this,c),(o=(0,n.default)(this,(0,u.default)(c).call(this,t))).state={staleLabel:!1},o._updateStaleStatus({},t),o}return(0,l.default)(c,t),(0,o.default)(c,null,[{key:"getDerivedStateFromProps",value:function(t,s){return{staleLabel:(t._status===f.JitsiRecordingConstants.status.OFF||!s.staleLabel)&&s.staleLabel}}}]),(0,o.default)(c,[{key:"componentDidUpdate",value:function(t){this._updateStaleStatus(t,this.props)}},{key:"render",value:function(){return this.props._status&&!this.state.staleLabel?this._renderLabel():null}},{key:"_getLabelKey",value:function(){switch(this.props.mode){case f.JitsiRecordingConstants.mode.STREAM:return'recording.live';case f.JitsiRecordingConstants.mode.FILE:return'recording.rec';default:return}}},{key:"_updateStaleStatus",value:function(t,s){var n=this;s._status===f.JitsiRecordingConstants.status.OFF&&t._status!==f.JitsiRecordingConstants.status.OFF&&setTimeout(function(){n.props._status===f.JitsiRecordingConstants.status.OFF&&n.setState({staleLabel:!0})},1e4)}}]),c})(c.Component);e.default=_},1545,[3,4,6,9,5,10,59,879,1448]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1546,[1547]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1547,[1548]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"LiveStreamButton",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"StartLiveStreamDialog",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"StopLiveStreamDialog",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3]))},1548,[3,1549,1551,1570]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.mapStateToProps=_,e.default=void 0;var o=l(r(d[2])),u=r(d[3]),n=r(d[4]),v=r(d[5]),f=t(r(d[6]));function _(t,l){var n=(0,u.getFeatureFlag)(t,u.LIVE_STREAMING_ENABLED,!0),v=(0,f._mapStateToProps)(t,l);return(0,o.default)({},v,{visible:n&&v.visible})}var s=(0,n.translate)((0,v.connect)(_)(f.default));e.default=s},1549,[2,3,53,951,726,443,1550]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t,n){var o,l=n.visible,s='';if(void 0===l){var u=t['features/base/config'],v=u.enableFeaturesBasedOnToken,c=u.liveStreamingEnabled,b=(0,f.getLocalParticipant)(t),_=b.features,L=void 0===_?{}:_;l=c,v&&(l=l&&'true'===String(L.livestreaming),o='disabled'===String(L.livestreaming),l||o||(o=!0,l=!0,s=t['features/base/jwt'].isGuest?'dialog.liveStreamingDisabledForGuestTooltip':'dialog.liveStreamingDisabledTooltip'))}(0,S.getActiveSession)(t,p.JitsiRecordingConstants.mode.FILE)&&(o=!0,s='dialog.liveStreamingDisabledBecauseOfActiveRecordingTooltip');return{_disabled:o,_isLiveStreamRunning:Boolean((0,S.getActiveSession)(t,p.JitsiRecordingConstants.mode.STREAM)),_tooltip:s,visible:l}},e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),v=r(d[6]),c=r(d[7]),p=r(d[8]),f=r(d[9]),b=r(d[10]),S=r(d[11]),_=r(d[12]),L=(function(t){function p(){var t,o;(0,n.default)(this,p);for(var u=arguments.length,v=new Array(u),f=0;f<u;f++)v[f]=arguments[f];return(o=(0,l.default)(this,(t=(0,s.default)(p)).call.apply(t,[this].concat(v)))).accessibilityLabel='dialog.accessibilityLabel.liveStreaming',o.icon=c.IconLiveStreaming,o.label='dialog.startLiveStreaming',o.toggledLabel='dialog.stopLiveStreaming',o}return(0,u.default)(p,t),(0,o.default)(p,[{key:"_getTooltip",value:function(){return this.props._tooltip||''}},{key:"_handleClick",value:function(){var t=this.props,n=t._isLiveStreamRunning;(0,t.dispatch)((0,v.openDialog)(n?_.StopLiveStreamDialog:_.StartLiveStreamDialog))}},{key:"_isDisabled",value:function(){return this.props._disabled}},{key:"_isToggled",value:function(){return this.props._isLiveStreamRunning}}]),p})(b.AbstractButton);e.default=L},1550,[3,4,5,6,9,10,531,548,879,704,970,1448,1547]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),u=n(r(d[4])),l=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),h=n(r(d[8])),v=r(d[9]),y=r(d[10]),_=r(d[11]),S=r(d[12]),K=r(d[13]),C=r(d[14]),b=t(r(d[15])),p=n(r(d[16])),k=n(r(d[17])),P=n(r(d[18])),E=n(r(d[19])),U=(function(t){function n(t){var s;return(0,o.default)(this,n),(s=(0,u.default)(this,(0,l.default)(n).call(this,t)))._onStreamKeyChangeNative=s._onStreamKeyChangeNative.bind((0,f.default)((0,f.default)(s))),s._onStreamKeyPick=s._onStreamKeyPick.bind((0,f.default)((0,f.default)(s))),s._onUserChanged=s._onUserChanged.bind((0,f.default)((0,f.default)(s))),s}return(0,c.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){return h.default.createElement(y.CustomSubmitDialog,{okKey:"dialog.startLiveStreaming",onCancel:this._onCancel,onSubmit:this._onSubmit},h.default.createElement(v.View,{style:E.default.startDialogWrapper},h.default.createElement(p.default,{onUserChanged:this._onUserChanged}),h.default.createElement(P.default,{broadcasts:this.state.broadcasts,onChange:this._onStreamKeyPick}),h.default.createElement(k.default,{onChange:this._onStreamKeyChangeNative,value:this.state.streamKey||this.props._streamKey})))}},{key:"_onStreamKeyChangeNative",value:function(t){this.props.dispatch((0,C.setLiveStreamKey)(t)),this._onStreamKeyChange(t)}},{key:"_onStreamKeyPick",value:function(t){this.setState({streamKey:t})}},{key:"_onUserChanged",value:function(t){var n=this;t?K.googleApi.getTokens().then(function(t){K.googleApi.getYouTubeLiveStreams(t.accessToken).then(function(t){n.setState({broadcasts:t})})}).catch(function(){n.setState({broadcasts:void 0,streamKey:void 0})}):this.setState({broadcasts:void 0,streamKey:void 0})}}]),n})(b.default),N=(0,_.translate)((0,S.connect)(b._mapStateToProps)(U));e.default=N},1551,[2,3,4,5,6,9,10,8,59,15,531,726,443,1552,1445,1562,1563,1566,1569,1565]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0});var o={googleApi:!0};Object.defineProperty(e,"googleApi",{enumerable:!0,get:function(){return l.default}});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}}))});var c=r(d[2]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}}))});var u=r(d[3]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}}))});var l=t(r(d[4]))},1552,[3,1553,1557,1555,1556]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.getCalendarEntries=function(t,n){return function(){return f.default.get().then(function(){return f.default._getCalendarEntries(t,n)})}},e.loadGoogleAPI=function(){return function(t,n){return f.default.get().then(function(){var t=n()['features/base/config'],u=t.liveStreamingEnabled,l=t.enableCalendarIntegration,c=t.googleApiApplicationClientID;return n()['features/google-api'].googleAPIState===o.GOOGLE_API_STATES.NEEDS_LOADING?f.default.initializeClient(c,u,l):Promise.resolve()}).then(function(){return t(l(o.GOOGLE_API_STATES.LOADED))}).then(function(){return f.default.isSignedIn()}).then(function(n){n&&t(l(o.GOOGLE_API_STATES.SIGNED_IN))})}},e.requestAvailableYouTubeBroadcasts=function(){return function(){return f.default.requestAvailableYouTubeBroadcasts().then(function(t){for(var n=t.result.items,u={},o=0;o<n.length;o++){var f=n[o],l=f.contentDetails.boundStreamId;l&&!u[l]&&(u[l]={boundStreamID:l,id:f.id,status:f.status.lifeCycleStatus,title:f.snippet.title})}return Object.values(u)})}},e.requestLiveStreamsForYouTubeBroadcast=function(t){return function(){return f.default.requestLiveStreamsForYouTubeBroadcast(t).then(function(n){var u=n.result.items,o=u&&u[0]&&u[0].cdn.ingestionInfo.streamName,f=o||'';return{streamKey:f,selectedBoundStreamID:t}})}},e.setGoogleAPIState=l,e.showAccountSelection=function(){return function(){return f.default.showAccountSelection()}},e.signIn=function(){return function(t){return f.default.get().then(function(){return f.default.signInIfNotSignedIn()}).then(function(){return t({type:u.SET_GOOGLE_API_STATE,googleAPIState:o.GOOGLE_API_STATES.SIGNED_IN})})}},e.signOut=function(){return function(t){return f.default.get().then(function(){return f.default.signOut()}).then(function(){t({type:u.SET_GOOGLE_API_STATE,googleAPIState:o.GOOGLE_API_STATES.LOADED}),t({type:u.SET_GOOGLE_API_PROFILE,profileEmail:''})})}},e.updateProfile=function(){return function(t){return f.default.get().then(function(){return f.default.signInIfNotSignedIn()}).then(function(){return t({type:u.SET_GOOGLE_API_STATE,googleAPIState:o.GOOGLE_API_STATES.SIGNED_IN})}).then(function(){return f.default.getCurrentUserProfile()}).then(function(n){return t({type:u.SET_GOOGLE_API_PROFILE,profileEmail:n.getEmail()}),n.getEmail()})}},e.updateCalendarEvent=function(t,u,o){return function(l,c){return(0,n.getShareInfoText)(c(),o).then(function(n){return f.default._updateCalendarEntry(t,u,o,n)})}};var n=r(d[1]),u=r(d[2]),o=r(d[3]),f=t(r(d[4]));function l(t,n){return{type:u.SET_GOOGLE_API_STATE,googleAPIState:t,googleResponse:n}}},1553,[3,1190,1554,1555,1556]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_GOOGLE_API_PROFILE=e.SET_GOOGLE_API_STATE=void 0;e.SET_GOOGLE_API_STATE='SET_GOOGLE_API_STATE';e.SET_GOOGLE_API_PROFILE='SET_GOOGLE_API_PROFILE'},1554,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.GOOGLE_SCOPE_YOUTUBE=e.GOOGLE_SCOPE_CALENDAR=e.GOOGLE_API_STATES=e.DISCOVERY_DOCS=e.API_URL_LIVE_BROADCASTS=e.API_URL_BROADCAST_STREAMS=void 0;e.API_URL_BROADCAST_STREAMS='https://content.googleapis.com/youtube/v3/liveStreams?part=id%2Csnippet%2Ccdn%2Cstatus&id=';e.API_URL_LIVE_BROADCASTS='https://content.googleapis.com/youtube/v3/liveBroadcasts?broadcastType=all&mine=true&part=id%2Csnippet%2CcontentDetails%2Cstatus';e.DISCOVERY_DOCS=['https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest'];e.GOOGLE_API_STATES={NEEDS_LOADING:0,LOADED:1,SIGNED_IN:2,NOT_AVAILABLE:3};e.GOOGLE_SCOPE_CALENDAR='https://www.googleapis.com/auth/calendar';e.GOOGLE_SCOPE_YOUTUBE='https://www.googleapis.com/auth/youtube.readonly'},1555,[]);
__d(function(g,r,i,a,m,e,d){},1556,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"GoogleSignInButton",{enumerable:!0,get:function(){return t.default}});var t=n(r(d[1]))},1557,[3,1558]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),f=t(r(d[5])),o=t(r(d[6])),c=r(d[7]),y=r(d[8]),p=t(r(d[9])),v=t(r(d[10])),h=r(d[11]),O=(function(t){function y(){return(0,n.default)(this,y),(0,l.default)(this,(0,s.default)(y).apply(this,arguments))}return(0,f.default)(y,t),(0,u.default)(y,[{key:"render",value:function(){var t=this.props,n=t.onClick,u=t.signedIn,l=t.t;return u?o.default.createElement(c.TouchableOpacity,{onPress:n,style:v.default.signOutButton},o.default.createElement(c.Text,{style:v.default.signOutButtonText},l('liveStreaming.signOut'))):o.default.createElement(c.TouchableOpacity,{onPress:n,style:v.default.signInButton},o.default.createElement(c.Image,{resizeMode:'contain',source:h,style:v.default.signInImage}))}}]),y})(p.default),I=(0,y.translate)(O);e.default=I},1558,[3,4,5,6,9,10,59,15,726,1559,1560,1561]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),f=t(r(d[3])),l=t(r(d[4])),o=(function(t){function o(){return(0,u.default)(this,o),(0,n.default)(this,(0,f.default)(o).apply(this,arguments))}return(0,l.default)(o,t),o})(r(d[5]).Component);e.default=o},1559,[3,4,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=r(d[0]),o=(0,t.createStyleSheet)({signInImage:{flex:1},signInButton:{alignItems:'center',height:40,justifyContent:'center'},signOutButton:{alignItems:'center',borderColor:t.ColorPalette.lightGrey,borderRadius:3,borderWidth:1,color:t.ColorPalette.white,height:40,justifyContent:'center'},signOutButtonText:{color:t.ColorPalette.blue,fontSize:14,fontWeight:'bold'}});e.default=o},1560,[522]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/images",width:382,height:92,scales:[1],hash:"56f00e35d133cf44f6590c095ce984da",name:"btn_google_signin_dark_normal",type:"png"})},1561,[180]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t){return{_conference:t['features/base/conference'].conference,_googleAPIState:t['features/google-api'].googleAPIState,_googleProfileEmail:t['features/google-api'].profileEmail,_streamKey:t['features/recording'].streamKey}},e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6])),f=r(d[7]),_=r(d[8]),v=r(d[9]),y=(function(t){function f(t){var o;return(0,n.default)(this,f),(o=(0,u.default)(this,(0,s.default)(f).call(this,t))).state={broadcasts:void 0,errorType:void 0,selectedBoundStreamID:void 0,streamKey:''},o._isMounted=!1,o._onCancel=o._onCancel.bind((0,c.default)((0,c.default)(o))),o._onStreamKeyChange=o._onStreamKeyChange.bind((0,c.default)((0,c.default)(o))),o._onSubmit=o._onSubmit.bind((0,c.default)((0,c.default)(o))),o}return(0,l.default)(f,t),(0,o.default)(f,[{key:"componentDidMount",value:function(){this._isMounted=!0}},{key:"componentWillUnmount",value:function(){this._isMounted=!1}},{key:"_onCancel",value:function(){return(0,_.sendAnalytics)((0,_.createLiveStreamingDialogEvent)('start','cancel.button')),!0}},{key:"_onStreamKeyChange",value:function(t){this._setStateIfMounted({streamKey:t,selectedBoundStreamID:void 0})}},{key:"_onSubmit",value:function(){var t=this.state,n=t.broadcasts,o=t.selectedBoundStreamID,u=(this.state.streamKey||this.props._streamKey||'').trim();if(!u)return!1;var s=null;if(o){var l=n&&n.find(function(t){return t.boundStreamID===o});s=l&&l.id}return(0,_.sendAnalytics)((0,_.createLiveStreamingDialogEvent)('start','confirm.button')),this.props._conference.startRecording({broadcastId:s,mode:v.JitsiRecordingConstants.mode.STREAM,streamId:u}),!0}},{key:"_setStateIfMounted",value:function(t){this._isMounted&&this.setState(t)}}]),f})(f.Component);e.default=y},1562,[3,4,5,6,9,10,8,59,905,879]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=o(r(d[2])),l=o(r(d[3])),s=o(r(d[4])),u=o(r(d[5])),_=o(r(d[6])),A=o(r(d[7])),f=o(r(d[8])),S=t(r(d[9])),E=r(d[10]),c=r(d[11]),G=r(d[12]),p=r(d[13]),O=(r(d[14]),r(d[15])),I=o(r(d[16])),h=o(r(d[17])),T=(function(t){function o(t){var n;return(0,l.default)(this,o),(n=(0,u.default)(this,(0,_.default)(o).call(this,t)))._logGoogleError=n._logGoogleError.bind((0,f.default)((0,f.default)(n))),n._onGoogleButtonPress=n._onGoogleButtonPress.bind((0,f.default)((0,f.default)(n))),n}return(0,A.default)(o,t),(0,s.default)(o,[{key:"componentDidMount",value:function(){var t=this;O.googleApi.hasPlayServices().then(function(){O.googleApi.configure({offlineAccess:!1,scopes:[O.GOOGLE_SCOPE_YOUTUBE]}),O.googleApi.signInSilently().then(function(o){t._setApiState(o?O.GOOGLE_API_STATES.SIGNED_IN:O.GOOGLE_API_STATES.LOADED,o)},function(){t._setApiState(O.GOOGLE_API_STATES.LOADED)})}).catch(function(o){t._logGoogleError(o),t._setApiState(O.GOOGLE_API_STATES.NOT_AVAILABLE)})}},{key:"render",value:function(){var t=this.props,o=t._dialogStyles,n=t.t,l=this.props,s=l.googleAPIState,u=l.googleResponse,_=u&&u.user&&u.user.email;if(s===O.GOOGLE_API_STATES.NOT_AVAILABLE||s===O.GOOGLE_API_STATES.NEEDS_LOADING||void 0===s)return null;var A=_?n('liveStreaming.signedInAs')+" "+_:n('liveStreaming.signInCTA');return S.default.createElement(E.View,{style:h.default.formWrapper},S.default.createElement(E.View,{style:h.default.helpText},S.default.createElement(E.Text,{style:[o.text,h.default.text]},A)),S.default.createElement(O.GoogleSignInButton,{onClick:this._onGoogleButtonPress,signedIn:s===O.GOOGLE_API_STATES.SIGNED_IN}))}},{key:"_logGoogleError",value:function(t){I.default.error('Google API error. Possible cause: bad config.',t)}},{key:"_onGoogleButtonPress",value:function(){var t=this.props.googleResponse;t&&t.user?this._onSignOut():this._onSignIn()}},{key:"_onSignIn",value:function(){var t=this;O.googleApi.signIn().then(function(o){t._setApiState(O.GOOGLE_API_STATES.SIGNED_IN,o)},this._logGoogleError)}},{key:"_onSignOut",value:function(){var t=this;O.googleApi.signOut().then(function(o){t._setApiState(O.GOOGLE_API_STATES.LOADED,o)},this._logGoogleError)}},{key:"_setApiState",value:function(t,o){this.props.onUserChanged(o),this.props.dispatch((0,O.setGoogleAPIState)(t,o))}}]),o})(S.Component);var v=(0,G.translate)((0,p.connect)(function(t){var o=t['features/google-api'],l=o.googleAPIState,s=o.googleResponse;return(0,n.default)({},(0,c._abstractMapStateToProps)(t),{googleAPIState:l,googleResponse:s})})(T));e.default=v},1563,[2,3,53,4,5,6,9,10,8,59,15,531,726,443,522,1552,1564,1565]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/recording');e.default=t},1564,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.TOUCHABLE_UNDERLAY=e.PLACEHOLDER_COLOR=e.ACTIVE_OPACITY=void 0;var t=r(d[0]);e.ACTIVE_OPACITY=.3;var o=t.ColorPalette.lightGrey;e.PLACEHOLDER_COLOR=o;var l=t.ColorPalette.lightGrey;e.TOUCHABLE_UNDERLAY=l;var n=(0,t.createStyleSheet)({betaTag:{backgroundColor:t.ColorPalette.darkGrey,borderRadius:2,marginLeft:16,opacity:.9,paddingLeft:6,paddingRight:6},betaTagText:{color:t.ColorPalette.white,fontWeight:'bold'},formWrapper:{alignItems:'stretch',flexDirection:'column',padding:t.BoxModel.padding},formFooter:{flexDirection:'row'},formFooterItem:{flex:1},helpText:{marginBottom:t.BoxModel.margin},startDialogWrapper:{flexDirection:'column'},streamKeyHelp:{alignSelf:'flex-end'},streamKeyInput:{alignSelf:'stretch',borderColor:t.ColorPalette.lightGrey,borderBottomWidth:1,fontSize:14,height:40,marginBottom:5,textAlign:'left'},streamKeyInputLabel:{alignSelf:'flex-start'},streamKeyPicker:{alignSelf:'stretch',flex:1,height:40,marginHorizontal:4,width:300},streamKeyPickerCta:{marginBottom:8},streamKeyPickerItem:{padding:4},streamKeyPickerItemHighlight:{backgroundColor:t.ColorPalette.darkGrey},streamKeyPickerWrapper:{borderColor:t.ColorPalette.lightGrey,borderRadius:3,borderWidth:1,flexDirection:'column'},tcText:{textAlign:'right'},text:{fontSize:14,textAlign:'left'},warningText:{color:t.ColorPalette.Y200}});e.default=n},1565,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),o=l(r(d[4])),f=l(r(d[5])),s=l(r(d[6])),c=l(r(d[7])),p=l(r(d[8])),y=r(d[9]),v=r(d[10]),_=r(d[11]),O=r(d[12]),T=(r(d[13]),l(r(d[14]))),x=r(d[15]),E=t(r(d[16])),h=(function(t){function l(t){var u;return(0,n.default)(this,l),(u=(0,o.default)(this,(0,f.default)(l).call(this,t)))._onOpenGooglePrivacyPolicy=u._onOpenGooglePrivacyPolicy.bind((0,c.default)((0,c.default)(u))),u._onOpenHelp=u._onOpenHelp.bind((0,c.default)((0,c.default)(u))),u._onOpenYoutubeTerms=u._onOpenYoutubeTerms.bind((0,c.default)((0,c.default)(u))),u}return(0,s.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){var t=this.props,l=t._dialogStyles,n=t.t;return p.default.createElement(y.View,{style:E.default.formWrapper},p.default.createElement(y.Text,{style:[l.text,E.default.text,E.default.streamKeyInputLabel]},n('dialog.streamKey')),p.default.createElement(y.TextInput,{onChangeText:this._onInputChange,placeholder:n('liveStreaming.enterStreamKey'),placeholderTextColor:E.PLACEHOLDER_COLOR,style:[l.text,E.default.streamKeyInput],value:this.props.value}),p.default.createElement(y.View,{style:E.default.formFooter},this.state.showValidationError?p.default.createElement(y.View,{style:E.default.formFooterItem},p.default.createElement(y.Text,{style:[l.text,E.default.warningText]},n('liveStreaming.invalidStreamKey'))):null,p.default.createElement(y.View,{style:E.default.formFooterItem},p.default.createElement(y.TouchableOpacity,{onPress:this._onOpenHelp,style:E.default.streamKeyHelp},p.default.createElement(y.Text,{style:[l.text,E.default.text]},n('liveStreaming.streamIdHelp'))))),p.default.createElement(y.View,null,p.default.createElement(y.TouchableOpacity,{onPress:this._onOpenYoutubeTerms},p.default.createElement(y.Text,{style:[l.text,E.default.text,E.default.tcText]},n('liveStreaming.youtubeTerms')))),p.default.createElement(y.View,null,p.default.createElement(y.TouchableOpacity,{onPress:this._onOpenGooglePrivacyPolicy},p.default.createElement(y.Text,{style:[l.text,E.default.text,E.default.tcText]},n('liveStreaming.googlePrivacyPolicy')))))}},{key:"_onOpenGooglePrivacyPolicy",value:function(){y.Linking.openURL(x.GOOGLE_PRIVACY_POLICY)}},{key:"_onOpenHelp",value:function(){var t=this.helpURL;'string'==typeof t&&y.Linking.openURL(t)}},{key:"_onOpenYoutubeTerms",value:function(){y.Linking.openURL(x.YOUTUBE_TERMS_URL)}}]),l})(T.default),P=(0,_.translate)((0,O.connect)(v._abstractMapStateToProps)(h));e.default=P},1566,[2,3,4,5,6,9,10,8,59,15,531,726,443,522,1567,1568,1565]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),u=t(r(d[4])),s=t(r(d[5])),p=t(r(d[6])),f=t(r(d[7])),v='https://jitsi.org/live',h=(function(t){function h(t){var o;return(0,n.default)(this,h),(o=(0,l.default)(this,(0,u.default)(h).call(this,t))).state={showValidationError:Boolean(o.props.value)&&!o._validateStreamKey(o.props.value)},o.helpURL='undefined'!=typeof interfaceConfig&&interfaceConfig.LIVE_STREAMING_HELP_LINK||v,o._debouncedUpdateValidationErrorVisibility=(0,f.default)(o._updateValidationErrorVisibility.bind((0,p.default)((0,p.default)(o))),800,{leading:!1}),o._onInputChange=o._onInputChange.bind((0,p.default)((0,p.default)(o))),o}return(0,s.default)(h,t),(0,o.default)(h,[{key:"componentDidUpdate",value:function(t){this.props.value!==t.value&&this._debouncedUpdateValidationErrorVisibility()}},{key:"componentWillUnmount",value:function(){this._debouncedUpdateValidationErrorVisibility.cancel()}},{key:"_onInputChange",value:function(t){var n='object'==typeof t?t.target.value:t;this.props.onChange(n)}},{key:"_updateValidationErrorVisibility",value:function(){var t=Boolean(this.props.value)&&!this._validateStreamKey(this.props.value);t!==this.state.showValidationError&&this.setState({showValidationError:t})}},{key:"_validateStreamKey",value:function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:'').trim(),n=/^(?:[a-zA-Z0-9]{4}(?:-(?!$)|$)){4}/.exec(t);return Boolean(n)}}]),h})(r(d[8]).Component);e.default=h},1567,[3,4,5,6,9,10,8,709,59]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.YOUTUBE_TERMS_URL=e.YOUTUBE_LIVE_DASHBOARD_URL=e.GOOGLE_PRIVACY_POLICY=void 0;e.GOOGLE_PRIVACY_POLICY='https://policies.google.com/privacy';e.YOUTUBE_LIVE_DASHBOARD_URL='https://www.youtube.com/live_dashboard';e.YOUTUBE_TERMS_URL='https://www.youtube.com/t/terms'},1568,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),o=l(r(d[4])),s=l(r(d[5])),f=l(r(d[6])),c=l(r(d[7])),y=t(r(d[8])),p=r(d[9]),h=r(d[10]),_=r(d[11]),b=r(d[12]),k=(r(d[13]),r(d[14])),E=t(r(d[15])),v=(function(t){function l(t){var u;return(0,n.default)(this,l),(u=(0,o.default)(this,(0,s.default)(l).call(this,t))).state={streamKey:null},u._onOpenYoutubeDashboard=u._onOpenYoutubeDashboard.bind((0,c.default)((0,c.default)(u))),u._onStreamPick=u._onStreamPick.bind((0,c.default)((0,c.default)(u))),u}return(0,f.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){var t=this,l=this.props,n=l._dialogStyles,u=l.broadcasts;return u?u.length?y.default.createElement(p.View,{style:E.default.formWrapper},y.default.createElement(p.View,{style:E.default.streamKeyPickerCta},y.default.createElement(p.Text,{style:[n.text,E.default.text]},this.props.t('liveStreaming.choose'))),y.default.createElement(p.View,{style:E.default.streamKeyPickerWrapper},u.map(function(l,u){return y.default.createElement(p.TouchableHighlight,{activeOpacity:E.ACTIVE_OPACITY,key:u,onPress:t._onStreamPick(l.key),style:[E.default.streamKeyPickerItem,t.state.streamKey===l.key?E.default.streamKeyPickerItemHighlight:null],underlayColor:E.TOUCHABLE_UNDERLAY},y.default.createElement(p.Text,{style:[n.text,E.default.text]},l.title))}))):y.default.createElement(p.View,{style:E.default.formWrapper},y.default.createElement(p.TouchableOpacity,{onPress:this._onOpenYoutubeDashboard},y.default.createElement(p.Text,{style:[n.text,E.default.warningText]},this.props.t('liveStreaming.getStreamKeyManually')))):null}},{key:"_onOpenYoutubeDashboard",value:function(){p.Linking.openURL(k.YOUTUBE_LIVE_DASHBOARD_URL)}},{key:"_onStreamPick",value:function(t){var l=this;return function(){l.setState({streamKey:t}),l.props.onChange(t)}}}]),l})(y.Component),P=(0,_.translate)((0,b.connect)(h._abstractMapStateToProps)(v));e.default=P},1569,[2,3,4,5,6,9,10,8,59,15,531,726,443,522,1568,1565]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),l=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),c=n(r(d[6])),s=n(r(d[7])),p=r(d[8]),_=r(d[9]),v=r(d[10]),h=t(r(d[11])),y=(function(t){function n(){return(0,u.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,l.default)(n,[{key:"render",value:function(){return s.default.createElement(p.ConfirmDialog,{contentKey:"dialog.stopStreamingWarning",onSubmit:this._onSubmit})}}]),n})(h.default),S=(0,_.translate)((0,v.connect)(h._mapStateToProps)(y));e.default=S},1570,[2,3,4,5,6,9,10,59,531,726,443,1571]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t){return{_conference:t['features/base/conference'].conference,_session:(0,v.getActiveSession)(t,p.JitsiRecordingConstants.mode.STREAM)}},e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),f=t(r(d[6])),l=r(d[7]),_=r(d[8]),p=r(d[9]),v=r(d[10]),b=(function(t){function l(t){var o;return(0,n.default)(this,l),(o=(0,s.default)(this,(0,u.default)(l).call(this,t)))._onSubmit=o._onSubmit.bind((0,f.default)((0,f.default)(o))),o}return(0,c.default)(l,t),(0,o.default)(l,[{key:"_onSubmit",value:function(){(0,_.sendAnalytics)((0,_.createLiveStreamingDialogEvent)('stop','confirm.button'));var t=this.props._session;return t&&this.props._conference.stopRecording(t.id),!0}}]),l})(l.Component);e.default=b},1571,[3,4,5,6,9,10,8,59,905,879,1448]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1572,[1573]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1573,[1574]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"RecordButton",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"StartRecordingDialog",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"StopRecordingDialog",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3]))},1574,[3,1575,1577,1587]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.mapStateToProps=s,e.default=void 0;var o=l(r(d[2])),u=r(d[3]),n=r(d[4]),f=r(d[5]),v=r(d[6]),_=t(r(d[7]));function s(t,l){var f=(0,n.getFeatureFlag)(t,n.RECORDING_ENABLED,!0),v='ios'!==u.Platform.OS||(0,n.getFeatureFlag)(t,n.IOS_RECORDING_ENABLED,!1),s=(0,_._mapStateToProps)(t,l);return(0,o.default)({},s,{visible:f&&v&&s.visible})}var E=(0,f.translate)((0,v.connect)(s)(_.default));e.default=E},1575,[2,3,53,15,951,726,443,1576]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t,o){var n,s=o.visible,l='';if(void 0===s){var c=(0,v.isLocalParticipantModerator)(t),u=t['features/base/config'],p=u.enableFeaturesBasedOnToken,b=u.fileRecordingsEnabled,_=(0,v.getLocalParticipant)(t),y=_.features,h=void 0===y?{}:y;s=c&&b,p&&(s=s&&'true'===String(h.recording),n='disabled'===String(h.recording),s||n||(n=!0,s=!0,l=t['features/base/jwt'].isGuest?'dialog.recordingDisabledForGuestTooltip':'dialog.recordingDisabledTooltip'))}(0,R.getActiveSession)(t,f.JitsiRecordingConstants.mode.STREAM)&&(n=!0,l='dialog.recordingDisabledBecauseOfActiveLiveStreamingTooltip');return{_disabled:n,_isRecordingRunning:Boolean((0,R.getActiveSession)(t,f.JitsiRecordingConstants.mode.FILE)),_tooltip:l,visible:s}},e.default=void 0;var o=t(r(d[1])),n=t(r(d[2])),s=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),u=r(d[6]),p=r(d[7]),b=r(d[8]),f=r(d[9]),v=r(d[10]),_=r(d[11]),R=r(d[12]),y=r(d[13]),h=(function(t){function v(){var t,n;(0,o.default)(this,v);for(var c=arguments.length,u=new Array(c),p=0;p<c;p++)u[p]=arguments[p];return(n=(0,s.default)(this,(t=(0,l.default)(v)).call.apply(t,[this].concat(u)))).accessibilityLabel='toolbar.accessibilityLabel.recording',n.icon=b.IconToggleRecording,n.label='dialog.startRecording',n.toggledLabel='dialog.stopRecording',n}return(0,c.default)(v,t),(0,n.default)(v,[{key:"_getTooltip",value:function(){return this.props._tooltip||''}},{key:"_handleClick",value:function(){var t=this.props,o=t._isRecordingRunning,n=t.dispatch;(0,u.sendAnalytics)((0,u.createToolbarEvent)('recording.button',{is_recording:o,type:f.JitsiRecordingConstants.mode.FILE})),n((0,p.openDialog)(o?y.StopRecordingDialog:y.StartRecordingDialog))}},{key:"_isDisabled",value:function(){return this.props._disabled}},{key:"_isToggled",value:function(){return this.props._isRecordingRunning}}]),v})(_.AbstractButton);e.default=h},1576,[3,4,5,6,9,10,905,531,548,879,704,970,1448,1573]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),s=n(r(d[3])),o=n(r(d[4])),c=n(r(d[5])),u=n(r(d[6])),f=n(r(d[7])),h=r(d[8]),S=r(d[9]),b=r(d[10]),v=t(r(d[11])),_=n(r(d[12])),p=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,c.default)(n).apply(this,arguments))}return(0,u.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=this.state,n=t.isTokenValid,l=t.isValidating,s=t.selectedRecordingService,o=t.sharingEnabled,c=t.spaceLeft,u=t.userName,S=this.props,b=S._fileRecordingsServiceEnabled,v=S._fileRecordingsServiceSharingEnabled,p=S._isDropboxEnabled,E=b?l:!!p&&!n;return f.default.createElement(h.CustomSubmitDialog,{okDisabled:E,onSubmit:this._onSubmit},f.default.createElement(_.default,{fileRecordingsServiceEnabled:b,fileRecordingsServiceSharingEnabled:v,integrationsEnabled:this._areIntegrationsEnabled(),isTokenValid:n,isValidating:l,onChange:this._onSelectedRecordingServiceChanged,onSharingSettingChanged:this._onSharingSettingChanged,selectedRecordingService:s,sharingSetting:o,spaceLeft:c,userName:u}))}}]),n})(v.default),E=(0,S.translate)((0,b.connect)(v.mapStateToProps)(p));e.default=E},1577,[2,3,4,5,6,9,10,59,531,726,443,1578,1582]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.mapStateToProps=function(t){var n=t['features/base/config'],o=n.autoCaptionOnRecord,s=void 0!==o&&o,l=n.fileRecordingsServiceEnabled,c=void 0!==l&&l,u=n.fileRecordingsServiceSharingEnabled,_=void 0!==u&&u,f=n.dropbox;return{_appKey:(void 0===f?{}:f).appKey,_autoCaptionOnRecord:s,_conference:t['features/base/conference'].conference,_fileRecordingsServiceEnabled:c,_fileRecordingsServiceSharingEnabled:_,_isDropboxEnabled:(0,v.isEnabled)(t),_token:t['features/dropbox'].token}},e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),l=t(r(d[4])),c=t(r(d[5])),u=t(r(d[6])),_=t(r(d[7])),f=r(d[8]),p=r(d[9]),S=r(d[10]),v=r(d[11]),R=r(d[12]),E=r(d[13]);var h=(function(t){function f(t){var n,s;return(0,o.default)(this,f),(n=(0,l.default)(this,(0,c.default)(f).call(this,t)))._onSubmit=n._onSubmit.bind((0,_.default)((0,_.default)(n))),n._onSelectedRecordingServiceChanged=n._onSelectedRecordingServiceChanged.bind((0,_.default)((0,_.default)(n))),n._onSharingSettingChanged=n._onSharingSettingChanged.bind((0,_.default)((0,_.default)(n))),n.props._fileRecordingsServiceEnabled||!n._areIntegrationsEnabled()?s=E.RECORDING_TYPES.JITSI_REC_SERVICE:n._areIntegrationsEnabled()&&(s=E.RECORDING_TYPES.DROPBOX),n.state={isTokenValid:!1,isValidating:!1,userName:void 0,sharingEnabled:!0,spaceLeft:void 0,selectedRecordingService:s},n}return(0,u.default)(f,t),(0,s.default)(f,[{key:"componentDidMount",value:function(){void 0!==this.props._token&&this._onTokenUpdated()}},{key:"componentDidUpdate",value:function(t){this.props._token!==t._token&&this._onTokenUpdated()}},{key:"_areIntegrationsEnabled",value:function(){return this.props._isDropboxEnabled}},{key:"_onSharingSettingChanged",value:function(){this.setState({sharingEnabled:!this.state.sharingEnabled})}},{key:"_onSelectedRecordingServiceChanged",value:function(t){this.setState({selectedRecordingService:t})}},{key:"_onTokenUpdated",value:function(){var t=this,o=this.props,s=o._appKey,l=o._isDropboxEnabled,c=o._token;l&&(void 0===c?this.setState({isTokenValid:!1,isValidating:!1}):(this.setState({isTokenValid:!1,isValidating:!0}),(0,v.getDropboxData)(c,s).then(function(o){void 0===o?t.setState({isTokenValid:!1,isValidating:!1}):t.setState((0,n.default)({isTokenValid:!0,isValidating:!1},o))})))}},{key:"_onSubmit",value:function(){var t,n=this.props,o=n._autoCaptionOnRecord,s=n._conference,l=n._isDropboxEnabled,c=n._token,u=n.dispatch,_={};return l&&c&&this.state.selectedRecordingService===E.RECORDING_TYPES.DROPBOX?(t=JSON.stringify({file_recording_metadata:{upload_credentials:{service_name:E.RECORDING_TYPES.DROPBOX,token:c}}}),_.type=E.RECORDING_TYPES.DROPBOX):(t=JSON.stringify({file_recording_metadata:{share:this.state.sharingEnabled}}),_.type=E.RECORDING_TYPES.JITSI_REC_SERVICE),(0,p.sendAnalytics)((0,p.createRecordingDialogEvent)('start','confirm.button',_)),s.startRecording({mode:S.JitsiRecordingConstants.mode.FILE,appData:t}),o&&u((0,R.toggleRequestingSubtitles)()),!0}}]),f})(f.Component);e.default=h},1578,[3,53,4,5,6,9,10,8,59,905,879,1579,1103,1447]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1579,[1580,1581]);
__d(function(g,r,i,a,m,e,d){},1580,[]);
__d(function(g,r,i,a,m,e,d){},1581,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),s=n(r(d[4])),c=n(r(d[5])),u=n(r(d[6])),h=n(r(d[7])),f=n(r(d[8])),S=t(r(d[9])),E=r(d[10]),C=r(d[11]),p=r(d[12]),_=r(d[13]),y=r(d[14]),R=r(d[15]),I=r(d[16]),v=r(d[17]),N=r(d[18]),O=r(d[19]),b=r(d[20]),D=r(d[21]),T=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,c.default)(this,(0,u.default)(n).call(this,t)))._onSignIn=l._onSignIn.bind((0,f.default)((0,f.default)(l))),l._onSignOut=l._onSignOut.bind((0,f.default)((0,f.default)(l))),l._onDropboxSwitchChange=l._onDropboxSwitchChange.bind((0,f.default)((0,f.default)(l))),l._onRecordingServiceSwitchChange=l._onRecordingServiceSwitchChange.bind((0,f.default)((0,f.default)(l))),l}return(0,h.default)(n,t),(0,s.default)(n,[{key:"render",value:function(){var t=this.props._styles;return S.default.createElement(y.Container,{className:"recording-dialog",style:t.container},this._renderNoIntegrationsContent(),this._renderIntegrationsContent(),this._renderFileSharingContent())}},{key:"_renderFileSharingContent",value:function(){if(!this.props.fileRecordingsServiceSharingEnabled)return null;var t=this.props,n=t._dialogStyles,o=t._styles,s=t.isValidating,c=t.onSharingSettingChanged,u=t.selectedRecordingService,h=t.sharingSetting,f=t.t,E=u!==O.RECORDING_TYPES.JITSI_REC_SERVICE,C='recording-header recording-header-line';return E&&(C+=' recording-switch-disabled'),S.default.createElement(y.Container,{className:C,key:"fileSharingSetting",style:[o.header,n.topBorderContainer,E?o.controlDisabled:null]},S.default.createElement(y.Container,{className:"recording-icon-container"},S.default.createElement(y.Image,{className:"recording-icon",src:D.ICON_SHARE,style:o.recordingIcon})),S.default.createElement(y.Text,{className:"recording-title",style:(0,l.default)({},n.text,o.title)},f('recording.fileSharingdescription')),S.default.createElement(y.Switch,{className:"recording-switch",disabled:E||s,onValueChange:c,style:o.switch,trackColor:{false:I.ColorPalette.lightGrey},value:!E&&h}))}},{key:"_renderNoIntegrationsContent",value:function(){if(!this.props.fileRecordingsServiceEnabled&&this.props.integrationsEnabled)return null;var t=this.props,n=t._dialogStyles,o=t._styles,s=t.isValidating,c=t.isVpaas,u=t.t,h=this.props.integrationsEnabled?S.default.createElement(y.Switch,{className:"recording-switch",disabled:s,onValueChange:this._onRecordingServiceSwitchChange,style:o.switch,trackColor:{false:I.ColorPalette.lightGrey},value:this.props.selectedRecordingService===O.RECORDING_TYPES.JITSI_REC_SERVICE}):null,f=c?D.ICON_SHARE:D.JITSI_LOGO;return S.default.createElement(y.Container,{className:"recording-header",key:"noIntegrationSetting",style:o.header},S.default.createElement(y.Container,{className:"recording-icon-container"},S.default.createElement(y.Image,{className:"recording-icon",src:f,style:o.recordingIcon})),S.default.createElement(y.Text,{className:"recording-title",style:(0,l.default)({},n.text,o.title)},u('recording.serviceDescription')),h)}},{key:"_renderIntegrationsContent",value:function(){if(!this.props.integrationsEnabled)return null;var t=this.props,n=t._dialogStyles,o=t._styles,s=t.isTokenValid,c=t.isValidating,u=t.t,h=null,f=null;return c?(h=this._renderSpinner(),f=S.default.createElement(y.Container,{className:"recording-switch"})):s?(h=this._renderSignOut(),f=S.default.createElement(y.Container,{className:"recording-switch"},S.default.createElement(y.Button,{onValueChange:this._onSignOut,style:o.signButton},u('recording.signOut')))):f=S.default.createElement(y.Container,{className:"recording-switch"},S.default.createElement(y.Button,{onValueChange:this._onSignIn,style:o.signButton},u('recording.signIn'))),this.props.fileRecordingsServiceEnabled&&(f=S.default.createElement(y.Switch,{className:"recording-switch",disabled:c,onValueChange:this._onDropboxSwitchChange,style:o.switch,trackColor:{false:I.ColorPalette.lightGrey},value:this.props.selectedRecordingService===O.RECORDING_TYPES.DROPBOX})),S.default.createElement(y.Container,
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.JITSI_LOGO=e.ICON_SHARE=e.DROPBOX_LOGO=void 0;var o=r(d[0]),t=r(d[1]),n=r(d[2]);e.DROPBOX_LOGO=n;var l=r(d[3]);e.ICON_SHARE=l;var c=r(d[4]);e.JITSI_LOGO=c;var O=1.5*t.BoxModel.padding;o.ColorSchemeRegistry.register('StartRecordingDialogContent',{container:{flex:0,flexDirection:'column'},controlDisabled:{opacity:.5},header:{alignItems:'center',flex:0,flexDirection:'row',justifyContent:'space-between',paddingBottom:O,paddingTop:O},loggedIn:{paddingBottom:O},recordingIcon:{width:24,height:24},signButton:{backgroundColor:t.ColorPalette.blue,color:t.ColorPalette.white,fontSize:16,borderRadius:5,padding:.5*t.BoxModel.padding},switch:{color:t.ColorPalette.white},title:{flex:1,fontSize:16,fontWeight:'bold',textAlign:'left',paddingLeft:t.BoxModel.padding},text:{color:(0,o.schemeColor)('text')}})},1583,[438,522,1584,1585,1586]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/images",width:64,height:64,scales:[1],hash:"0ac6fc61f77d3a3cc74d03ca46e7ada3",name:"dropboxLogo_square",type:"png"})},1584,[180]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/images",width:128,height:128,scales:[1],hash:"a932ca303133bc2c6dedddc51836d688",name:"icon-users",type:"png"})},1585,[180]);
__d(function(g,r,i,a,m,e,d){m.exports=r(d[0]).registerAsset({__packager_asset:!0,httpServerLocation:"/assets/images",width:64,height:64,scales:[1],hash:"d8e63d36c81fb4a4b6cd62bb4e553ba9",name:"jitsiLogo_square",type:"png"})},1586,[180]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),f=n(r(d[5])),c=n(r(d[6])),s=n(r(d[7])),p=r(d[8]),_=r(d[9]),v=r(d[10]),h=t(r(d[11])),y=(function(t){function n(){return(0,u.default)(this,n),(0,l.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){return s.default.createElement(p.ConfirmDialog,{contentKey:"dialog.stopRecordingWarning",onSubmit:this._onSubmit})}}]),n})(h.default),b=(0,_.translate)((0,v.connect)(h._mapStateToProps)(y));e.default=b},1587,[2,3,4,5,6,9,10,59,531,726,443,1588]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(n){return{_conference:n['features/base/conference'].conference,_fileRecordingSession:(0,v.getActiveSession)(n,p.JitsiRecordingConstants.mode.FILE)}},e.default=void 0;var t=n(r(d[1])),o=n(r(d[2])),u=n(r(d[3])),c=n(r(d[4])),s=n(r(d[5])),f=n(r(d[6])),l=r(d[7]),_=r(d[8]),p=r(d[9]),v=r(d[10]),b=(function(n){function l(n){var o;return(0,t.default)(this,l),(o=(0,u.default)(this,(0,c.default)(l).call(this,n)))._onSubmit=o._onSubmit.bind((0,f.default)((0,f.default)(o))),o}return(0,s.default)(l,n),(0,o.default)(l,[{key:"_onSubmit",value:function(){(0,_.sendAnalytics)((0,_.createRecordingDialogEvent)('stop','confirm.button'));var n=this.props._fileRecordingSession;return n&&this.props._conference.stopRecording(n.id),!0}}]),l})(l.Component);e.default=b},1588,[3,4,5,6,9,10,8,59,905,879,1448]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1589,[1453,1454,1458]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),s=r(d[6]),f=r(d[7]),p=r(d[8]),b=r(d[9]),v=r(d[10]),h=r(d[11]),y=(function(t){function f(){var t,l;(0,n.default)(this,f);for(var c=arguments.length,s=new Array(c),b=0;b<c;b++)s[b]=arguments[b];return(l=(0,o.default)(this,(t=(0,u.default)(f)).call.apply(t,[this].concat(s)))).accessibilityLabel='toolbar.accessibilityLabel.help',l.icon=p.IconHelp,l.label='toolbar.help',l}return(0,c.default)(f,t),(0,l.default)(f,[{key:"_handleClick",value:function(){(0,s.sendAnalytics)((0,s.createToolbarEvent)('help.pressed')),(0,h.openURLInBrowser)(this.props._userDocumentationURL)}}]),f})(v.AbstractButton);var _=(0,f.translate)((0,b.connect)(function(t){var n=(t['features/base/config'].deploymentUrls||{}).userDocumentationURL;return{_userDocumentationURL:n,visible:'string'==typeof n}})(y));e.default=_},1590,[3,4,5,6,9,10,905,726,548,443,970,506]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=l(r(d[1])),n=l(r(d[2])),o=l(r(d[3])),u=l(r(d[4])),c=l(r(d[5])),f=r(d[6]),s=r(d[7]),y=r(d[8]),b=r(d[9]),O=(function(l){function s(){var l,n;(0,t.default)(this,s);for(var c=arguments.length,f=new Array(c),b=0;b<c;b++)f[b]=arguments[b];return(n=(0,o.default)(this,(l=(0,u.default)(s)).call.apply(l,[this].concat(f)))).accessibilityLabel='toolbar.accessibilityLabel.audioOnly',n.icon=y.IconAudioOnly,n.label='toolbar.audioOnlyOn',n.toggledIcon=y.IconAudioOnlyOff,n.toggledLabel='toolbar.audioOnlyOff',n}return(0,c.default)(s,l),(0,n.default)(s,[{key:"_handleClick",value:function(){this.props.dispatch((0,f.toggleAudioOnly)())}},{key:"_isToggled",value:function(){return this.props._audioOnly}}]),s})(r(d[10]).AbstractButton);var v=(0,s.translate)((0,b.connect)(function(l){var t=l['features/base/audio-only'].enabled;return{_audioOnly:Boolean(t)}})(O));e.default=v},1591,[3,4,5,6,9,10,1142,726,548,443,970]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),c=r(d[5]),s=r(d[6]),f=(function(t){function c(){var t,u;(0,l.default)(this,c);for(var f=arguments.length,b=new Array(f),v=0;v<f;v++)b[v]=arguments[v];return(u=(0,n.default)(this,(t=(0,o.default)(c)).call.apply(t,[this].concat(b)))).accessibilityLabel='toolbar.accessibilityLabel.moreOptions',u.icon=s.IconMenu,u.label='toolbar.moreOptions',u}return(0,u.default)(c,t),c})(r(d[7]).AbstractButton),b=(0,c.translate)(f);e.default=b},1592,[3,4,6,9,10,726,548,970]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),o=t(r(d[3])),s=t(r(d[4])),c=t(r(d[5])),u=r(d[6]),p=r(d[7]),f=r(d[8]),v=r(d[9]),b=r(d[10]),_=r(d[11]),h=(function(t){function p(){var t,l;(0,n.default)(this,p);for(var c=arguments.length,u=new Array(c),f=0;f<c;f++)u[f]=arguments[f];return(l=(0,o.default)(this,(t=(0,s.default)(p)).call.apply(t,[this].concat(u)))).accessibilityLabel='toolbar.accessibilityLabel.raiseHand',l.icon=v.IconRaisedHand,l.label='toolbar.raiseYourHand',l.toggledLabel='toolbar.lowerYourHand',l}return(0,c.default)(p,t),(0,l.default)(p,[{key:"_handleClick",value:function(){this._toggleRaisedHand()}},{key:"_isToggled",value:function(){return this.props._raisedHand}},{key:"_toggleRaisedHand",value:function(){var t=!this.props._raisedHand;(0,u.sendAnalytics)((0,u.createToolbarEvent)('raise.hand',{enable:t})),this.props.dispatch((0,b.participantUpdated)({id:this.props._localParticipant.id,local:!0,raisedHand:t}))}}]),p})(r(d[12]).AbstractButton);var H=(0,f.translate)((0,_.connect)(function(t,n){var l=(0,b.getLocalParticipant)(t),o=(0,p.getFeatureFlag)(t,p.RAISE_HAND_ENABLED,!0),s=n.visible,c=void 0===s?o:s;return{_localParticipant:l,_raisedHand:l.raisedHand,visible:c}})(h));e.default=H},1593,[3,4,5,6,9,10,905,951,726,548,704,443,970]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),o=t(r(d[2])),n=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),s=r(d[6]),f=r(d[7]),b=r(d[8]),v=r(d[9]),_=r(d[10]),h=r(d[11]),p=(function(t){function s(){var t,o;(0,l.default)(this,s);for(var c=arguments.length,b=new Array(c),v=0;v<c;v++)b[v]=arguments[v];return(o=(0,n.default)(this,(t=(0,u.default)(s)).call.apply(t,[this].concat(b)))).accessibilityLabel='toolbar.accessibilityLabel.toggleCamera',o.icon=f.IconSwitchCamera,o.label='toolbar.toggleCamera',o}return(0,c.default)(s,t),(0,o.default)(s,[{key:"_handleClick",value:function(){this.props.dispatch((0,b.toggleCameraFacingMode)())}},{key:"_isDisabled",value:function(){return this.props._audioOnly||this.props._videoMuted}}]),s})(_.AbstractButton);var y=(0,s.translate)((0,v.connect)(function(t){var l=t['features/base/audio-only'].enabled,o=t['features/base/tracks'];return{_audioOnly:Boolean(l),_videoMuted:(0,h.isLocalTrackMuted)(o,b.MEDIA_TYPE.VIDEO)}})(p));e.default=y},1594,[3,4,5,6,9,10,726,548,887,443,970,903]);
Merge 4.13.0 into master (#2728)
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
* [FIX] Share extension and save image not working on Android 10 (#2651)
* Bump version to 4.13.0 (#2657)
* [FIX] Update Loading logo (#2658)
* [NEW] Support client certificates for SSL (two-way authentication) (Android) (#2624)
* wip: Android SSL Pinning
* Use own SSLPinningModule
* wip: Use Rocket.Chat own react-native
* wip: Fresco Images using custom OkHttpClient
* wip: react-native-webview onReceivedClientCertRequest
* feat: Save Images of a SSL Pinning protected server
* chore: SSLPinning package as a interface to iOS & Android implementations
* chore: update glide
* feat: load images under a client ssl certificate protected server
* chore: remove patch
* feat: Audio & Video under a SSL Client protected server
* fix: Unpin certificate when change server
* feat: Fast Image as a patch
* chore: update fast-image
* Fix merge
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel actions (#2644)
* room roles
* handle owner
* endpoints
* Leader and Moderator
* Remove user from room
* stash ignore
* Add subscription.ignored column
* ignore user
* Fix icons
* I18n
* Minor i18n fixes
* Direct Message and open action sheet after a normal tap
* Fix icon
* stash isIgnored
* isManualUnignored message
* Fix update
* Ignored
* Mute, moderator, leader, owner, remove from room
* ignore
* Tests
* pt-BR
* Update pods
* Apply requested changes
* Add RC version on requests
* [NEW] Support RTL (#2656)
* wip: RTL (iOS)
* wip: RTL (Android)
* wip: reload bundle when change between RTL languages
* fix: Stack Animation on Android
* fix: update snapshot
* fix: Swipe Room Actions in RTL mode
* fix: snapshots
* Move isRTL to i18n
* Fix styling
* Update tests
* Update pods
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Initial users' status is not fetched (#2664)
* [FIX] Messages overlapping and emoji keyboard not opening (#2670)
* Replace keyboard libs for react-native-ui-lib
* Apply Jitsi branch
* Require keyboard on bundle
* Update ui-lib
* chore: update deps
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] Force normalized params for 2FA (#2683)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Thread message flickering while thread parent isn't found (#2676)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Light theme not working on Android with Dark Theme set (#2675)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App not prompting join code for password protected channels (#2514)
* Adding joinCode parameter
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Insert join code input
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add joinCode field on db
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add label i18 pt-br and en-us
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add insert join code text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Fix atribute name
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add join text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Fix attributes joinCode, joinCodeRequired and pass attribute param in navigation
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Fixing attribute joinCodeRequired pass to goRoom
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Changed textinput style
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Delete not necessary attribute
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Fixing input style
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Undo unncessary changes
* use a join code modal
* tests: e2e tests to join protected channel
* fix: undo unnecessary change
* tests: cancel join code
* Remove some tests
* Minor fixes
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: youssef-md <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Add Arabic (#2537)
* Arabic language setup
* Added arabic translation
* Arabic translation Proofreading
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18N] Add missing zh_TW and zh_CN strings (#2680)
* feat(i18n): add some missing strings and improve some translation
* fix: add missing server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add username on status messages (#2553)
* 1689 - missing user name for status messages
* 1689 - missing user name for status messages. Fixed broken e2e test "should pin message".
* Minor tweak
* Remove center style
* Small refactor on User
* Remove toLowerCase
* Update tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Filenames are incorrect in non-latin alphabets on upload (#2671)
* fix: filename on react-native-image-crop-picker
* fix: use rn-fetch-blob to upload files
* fix: FileUpload as a service
* fix: cancel upload on iOS
* fix: file upload from share extension
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Ease white labelling for Android (#2685)
* improve white labelling for Android
* Move application ID to gradle properties
* Fix CI
* Point foss sufix to main app
* Use npx on android-whitelabel script
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Chats order (#2688)
* Persist highest value on subscription.roomUpdatedAt
* Update tests
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Re-enable Jitsi Chat (#2687)
* Fix main jitsi
* Fix iOS
* Clear build.gradle cache
* Don't restore gradle
* cache is back
* Use master
* Point to react-native-jitsi-meet#master
* [CHORE] Build official apps on CI (#2701)
* Duplicated target and changed Bridging Header
* Display name
* Unnecessary dumb swift file removed
* Buildable name
* Reorder Info.plist
* Rename Official target's bundle id
* Ignore .mobileprovision
* Fix provisioning of official app
* Starting signing
* stash fastfile
* starting official ci iOS
* Uncomment Fastfile keychain
* Fix CI config
* allowProvisioningUpdates
* Changing AppIcon and Splash Screen
* Remove unnecessary folder inside of Images.xcassets
* Reorder notificationservice and shareextension plists
* Fix signing
* Manual signing style for official
* Split official signing
* Update project provisioning
* Use ENV as profile
* Output match
* Keys
* TestFlight refactor
* Setting up android
* android-official-play-build job
* Start removing unnecessary fastlane tasks on Android
* Trying to refactor Android jobs
* android-env
* Remove foss build for now
* Fork
* Fix if conditions
* Fix push
* ios-build command
* Rename Android builds
* Upload dSYMs
* Refactoring workflow
* Reorder upload-to-testflight
* upload-to-google-play-beta command
* Fix ci
* Fix android fork build
* Fix keystore
* Fix options on fastlane android
* Fix keystore
* Check isOfficial on iOS
* Check isOfficial on db
* Remove unused imports
* Database names on Android
* Tag fix
* Minor fixes
* Set IS_OFFICIAL on CI
* Fix detox
* follow review suggestions
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [i18n] Update fr (#2697)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Update fr (#2705)
Typo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Empty space on Messagebox (#2704)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Yarn android scripts (#2716)
* [CHORE] Rename Experimental iOS lane (#2717)
* Move build_fork to the end
* Rename release to build_experimental
* [IMPROVEMENT] Use class variable instead of state for List's animated (#2718)
* [FIX] Bottom sheet being hidden sometimes (#2722)
* [IMPROVEMENT] Match background and text mention colors (#2723)
* [FIX] App freezing if Markdown preview contains sequential empty spaces (#2726)
* Remove sequential empty spaces from Markdown preview
* Use Markdown preview on RepliedThread
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Abdullah Alhamoud <10301923+abalhamoud@users.noreply.github.com>
Co-authored-by: Dave Koo <dkoo761@gmail.com>
Co-authored-by: Fazil Boudjelal <fazildiablou@hotmail.fr>
Co-authored-by: Lucas Dousse <Cormoran96@users.noreply.github.com>
2020-12-21 15:55:40 +00:00
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=o(r(d[1])),l=r(d[2]),n=r(d[3]),u={backgroundColor:(0,l.schemeColor)('button'),borderRadius:25,borderWidth:0,flex:0,flexDirection:'row',height:50,justifyContent:'center',marginHorizontal:7,width:50},c={alignSelf:'center',color:n.ColorPalette.darkGrey,fontSize:22},s=(0,t.default)({},u,{backgroundColor:(0,l.schemeColor)('buttonToggled')}),b=(0,t.default)({},c,{color:n.ColorPalette.white}),f={expandMenuContainer:{alignItems:'center',borderTopLeftRadius:16,borderTopRightRadius:16,flexDirection:'column'},sheetGestureRecognizer:{alignItems:'stretch',flexDirection:'column'},toolbar:{alignItems:'center',flexDirection:'row',flexGrow:0,justifyContent:'center',marginBottom:n.BoxModel.margin/2,paddingHorizontal:n.BoxModel.margin},toolbox:{flexDirection:'column',flexGrow:0}};e.default=f,l.ColorSchemeRegistry.register('Toolbox',{buttonStyles:{iconStyle:c,style:u},buttonStylesBorderless:{iconStyle:b,style:(0,t.default)({},u,{backgroundColor:'transparent'})},chatButtonOverride:{toggled:{backgroundColor:n.ColorPalette.blue}},hangupButtonStyles:{iconStyle:b,style:(0,t.default)({},u,{backgroundColor:(0,l.schemeColor)('hangup')}),underlayColor:n.ColorPalette.buttonUnderlay},toggledButtonStyles:{iconStyle:b,style:(0,t.default)({},s,{borderColor:(0,l.schemeColor)('buttonToggledBorder'),borderWidth:1})}})},1595,[3,53,438,522]);
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.abstractMapStateToProps=function(t){return{_notificationsVisible:(0,b.shouldDisplayNotifications)(t),_room:t['features/base/conference'].room,_shouldDisplayTileView:(0,_.shouldDisplayTileView)(t)}},e.AbstractConference=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),f=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),_=r(d[9]),b=r(d[10]),h=(function(t){function n(){return(0,o.default)(this,n),(0,l.default)(this,(0,u.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,s.default)(n,[{key:"renderNotificationsContainer",value:function(t){return this.props._notificationsVisible?c.default.createElement(p.NotificationsContainer,t):null}}]),n})(c.Component);e.AbstractConference=h},1596,[2,3,4,5,6,9,10,59,723,1407,1597]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.maybeShowSuboptimalExperienceNotification=function(n,l){(0,o.isSuboptimalBrowser)()&&n((0,s.showWarningNotification)({titleKey:'notify.suboptimalExperienceTitle',description:(0,t.translateToHTML)(l,'notify.suboptimalBrowserWarning',{recommendedBrowserPageLink:window.location.origin+"/static/recommendedBrowsers.html"})}))},e.shouldDisplayNotifications=function(o){var t=(0,n.toState)(o),c=Boolean((0,l.getOverlayToRender)(t)),f=t['features/invite'].calleeInfoVisible;return(0,s.areThereNotifications)(t)&&!c&&!f};var o=r(d[0]),t=r(d[1]),n=r(d[2]),s=r(d[3]),l=r(d[4])},1597,[1506,726,443,706,1088]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),s=n(r(d[3])),l=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),p=n(r(d[7])),f=n(r(d[8])),b=n(r(d[9])),y=r(d[10]),L=r(d[11]),v=r(d[12]),_=r(d[13]),h=r(d[14]),E=r(d[15]),T=r(d[16]),O=r(d[17]),P=t(r(d[18])),x=n(r(d[19])),R=n(r(d[20])),V={quality:T.VideoQualityExpandedLabel,recording:{component:h.RecordingExpandedLabel,props:{mode:L.JitsiRecordingConstants.mode.FILE}},streaming:{component:h.RecordingExpandedLabel,props:{mode:L.JitsiRecordingConstants.mode.STREAM}},transcribing:E.TranscribingExpandedLabel,'insecure-room-name':x.default},C=(function(t){function n(t){var o;return(0,s.default)(this,n),(o=(0,u.default)(this,(0,c.default)(n).call(this,t))).state={containerLayout:void 0,labelLayouts:{},parentPosition:void 0,visibleExpandedLabel:void 0},o._onTopViewLayout=o._onTopViewLayout.bind((0,f.default)((0,f.default)(o))),o}return(0,p.default)(n,t),(0,l.default)(n,[{key:"componentWillUnmount",value:function(){clearTimeout(this.expandedLabelTimeout)}},{key:"render",value:function(){var t=this.props,n=t._aspectRatio,o=t._filmstripVisible;if(!t._visible)return null;var s=n===_.ASPECT_RATIO_WIDE;return b.default.createElement(y.View,{pointerEvents:"box-none",style:R.default.labelWrapper},b.default.createElement(y.View,{onLayout:this._onTopViewLayout,pointerEvents:"box-none",style:[R.default.indicatorContainer,s&&o&&R.default.indicatorContainerWide]},b.default.createElement(y.TouchableOpacity,{onLayout:this._createOnLayout("recording"),onPress:this._createOnPress("recording")},this._renderRecordingLabel(L.JitsiRecordingConstants.mode.FILE)),b.default.createElement(y.TouchableOpacity,{onLayout:this._createOnLayout("streaming"),onPress:this._createOnPress("streaming")},this._renderRecordingLabel(L.JitsiRecordingConstants.mode.STREAM)),b.default.createElement(y.TouchableOpacity,{onLayout:this._createOnLayout("transcribing"),onPress:this._createOnPress("transcribing")},this._renderTranscribingLabel()),b.default.createElement(y.TouchableOpacity,{onLayout:this._createOnLayout("insecure-room-name"),onPress:this._createOnPress("insecure-room-name")},this._renderInsecureRoomNameLabel()),b.default.createElement(y.TouchableOpacity,{onLayout:this._createOnLayout("quality"),onPress:this._createOnPress("quality")},this._renderVideoQualityLabel())),b.default.createElement(y.View,{style:[R.default.indicatorContainer,s&&o&&R.default.indicatorContainerWide]},this._renderExpandedLabel()))}},{key:"_createOnLayout",value:function(t){var n=this;return function(s){var l=s.nativeEvent.layout,u=n.state.labelLayouts,c={};c[t]=l,n.setState({labelLayouts:(0,o.default)({},u,c)})}}},{key:"_createOnPress",value:function(t){var n=this;return function(){var o=n.state,s=o.containerLayout,l=o.labelLayouts,u=n.state.visibleExpandedLabel;if(s){var c=l[t],p=s.width-c.x;u=u===t?void 0:t,clearTimeout(n.expandedLabelTimeout),n.setState({parentPosition:p,visibleExpandedLabel:u}),u&&(n.expandedLabelTimeout=setTimeout(function(){n.setState({visibleExpandedLabel:void 0})},5e3))}}}},{key:"_onTopViewLayout",value:function(t){var n=t.nativeEvent.layout;this.setState({containerLayout:n})}},{key:"_renderExpandedLabel",value:function(){var t=this.state,n=t.parentPosition,s=t.visibleExpandedLabel;if(s){var l=V[s];if(l){var u=l.component||l,c=l.props||{};return b.default.createElement(u,(0,o.default)({},c,{parentPosition:n}))}}return null}}]),n})(P.default);var w=(0,v.connect)(function(t){return(0,o.default)({},(0,P._abstractMapStateToProps)(t),{_aspectRatio:t['features/base/responsive-ui'].aspectRatio,_visible:!(0,O.shouldDisplayNotifications)(t)})})(C);e.default=w},1598,[2,3,53,4,5,6,9,10,8,59,15,879,443,999,1532,1599,1604,1597,1613,1639,1640]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1599,[1479,1600]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"TranscribingLabel",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"TranscribingExpandedLabel",{enumerable:!0,get:function(){return u.default}});var t=n(r(d[1])),u=n(r(d[2]))},1600,[3,1601,1603]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),s=n(r(d[6])),c=t(r(d[7])),p=r(d[8]),h=r(d[9]),_=r(d[10]),b=r(d[11]),v=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){return this.props._showLabel?c.default.createElement(h.CircularLabel,{label:this.props.t('transcribing.tr')}):null}}]),n})(c.Component),y=(0,p.translate)((0,_.connect)(b._mapStateToProps)(v));e.default=y},1601,[2,3,4,5,6,9,10,59,726,1537,443,1602]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(n){return{_showLabel:n['features/transcribing'].isTranscribing}}},1602,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),s=r(d[6]),p=(function(t){function s(){return(0,n.default)(this,s),(0,l.default)(this,(0,f.default)(s).apply(this,arguments))}return(0,o.default)(s,t),(0,u.default)(s,[{key:"_getLabel",value:function(){return this.props.t('transcribing.expandedLabel')}}]),s})(r(d[7]).ExpandedLabel),c=(0,s.translate)(p);e.default=c},1603,[3,4,5,6,9,10,726,1537]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})}),r(d[3])},1604,[1605,1496,1497,1612]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"OverflowMenuVideoQualityItem",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"VideoQualityDialog",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"VideoQualityLabel",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"VideoQualityExpandedLabel",{enumerable:!0,get:function(){return o.default}});var n=t(r(d[1])),u=t(r(d[2])),l=t(r(d[3])),o=t(r(d[4]))},1605,[3,1606,1607,1608,1611]);
__d(function(g,r,i,a,m,e,d){},1606,[]);
__d(function(g,r,i,a,m,e,d){},1607,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),o=l(r(d[4])),f=l(r(d[5])),c=l(r(d[6])),s=l(r(d[7])),y=l(r(d[8])),v=r(d[9]),p=r(d[10]),_=r(d[11]),b=r(d[12]),h=t(r(d[13])),O=l(r(d[14])),S=(function(t){function l(){return(0,n.default)(this,l),(0,f.default)(this,(0,c.default)(l).apply(this,arguments))}return(0,s.default)(l,t),(0,o.default)(l,[{key:"render",value:function(){var t=this.props,l=t._audioOnly,u=t.style,n=t.t;return l?y.default.createElement(p.CircularLabel,{label:n('videoStatus.audioOnly'),style:(0,b.combineStyles)(O.default.indicatorAudioOnly,u)}):null}}]),l})(h.default);var M=(0,v.translate)((0,_.connect)(function(t){return(0,u.default)({},(0,h._abstractMapStateToProps)(t))})(S));e.default=M},1608,[2,3,53,4,5,6,9,10,59,726,1537,443,522,1609,1610]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._abstractMapStateToProps=function(t){return{_audioOnly:t['features/base/audio-only'].enabled}},e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),f=t(r(d[4])),l=(function(t){function l(){return(0,u.default)(this,l),(0,n.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,f.default)(l,t),l})(r(d[5]).Component);e.default=l},1609,[3,4,6,9,10,59]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.AUD_LABEL_COLOR=void 0;var o=r(d[0]),t=o.ColorPalette.green;e.AUD_LABEL_COLOR=t;var l=(0,o.createStyleSheet)({indicatorAudioOnly:{backgroundColor:t}});e.default=l},1610,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),s=r(d[6]),_=r(d[7]),p=r(d[8]),v=(function(t){function s(){return(0,u.default)(this,s),(0,l.default)(this,(0,f.default)(s).apply(this,arguments))}return(0,o.default)(s,t),(0,n.default)(s,[{key:"_getColor",value:function(){return p.AUD_LABEL_COLOR}},{key:"_getLabel",value:function(){return this.props.t('videoStatus.audioOnlyExpanded')}}]),s})(_.ExpandedLabel),c=(0,s.translate)(v);e.default=c},1611,[3,4,5,6,9,10,726,1537,1610]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=t(r(d[1])),l=r(d[2]),n=r(d[3]),o=r(d[4]),v=r(d[5]),s=r(d[6]),E=t(r(d[7])),y={maxReceiverVideoQuality:v.VIDEO_QUALITY_LEVELS.HIGH,minHeightForQualityLvl:new Map,preferredVideoQuality:v.VIDEO_QUALITY_LEVELS.HIGH};function Q(t,u){var l,o=u.config,v=null==o?void 0:null==(l=o.videoQuality)?void 0:l.minHeightForQualityLvl,y=(0,s.validateMinHeightForQualityLvl)(v);return v&&!y&&E.default.error('Invalid config value videoQuality.minHeightForQualityLvl'),y?(0,n.set)(t,'minHeightForQualityLvl',y):t}y.minHeightForQualityLvl.set(360,v.VIDEO_QUALITY_LEVELS.STANDARD),y.minHeightForQualityLvl.set(720,v.VIDEO_QUALITY_LEVELS.HIGH),n.PersistenceRegistry.register('features/video-quality-persistent-storage'),n.ReducerRegistry.register('features/video-quality-persistent-storage',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},l=arguments.length>1?arguments[1]:void 0;switch(l.type){case o.SET_PREFERRED_VIDEO_QUALITY:var n=l.preferredVideoQuality;return(0,u.default)({},t,{persistedPrefferedVideoQuality:n})}return t}),n.ReducerRegistry.register('features/video-quality',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y,v=arguments.length>1?arguments[1]:void 0;switch(v.type){case l.SET_CONFIG:return Q(t,v);case o.SET_MAX_RECEIVER_VIDEO_QUALITY:return(0,n.set)(t,'maxReceiverVideoQuality',v.maxReceiverVideoQuality);case o.SET_PREFERRED_VIDEO_QUALITY:var s=v.preferredVideoQuality;return(0,u.default)({},t,{preferredVideoQuality:s})}return t})},1612,[3,53,917,443,1497,1498,1500,1499]);
__d(function(g,r,i,a,m,e,d){var l=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._abstractMapStateToProps=function(l){return{_filmstripVisible:(0,L.isFilmstripVisible)(l),_showVideoQualityLabel:!(0,v.shouldDisplayTileView)(l)}},e.default=void 0;var t=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),b=l(r(d[7])),s=r(d[8]),L=r(d[9]),_=r(d[10]),y=r(d[11]),E=r(d[12]),v=r(d[13]),p=r(d[14]),k=r(d[15]),R=(function(l){function n(){return(0,t.default)(this,n),(0,o.default)(this,(0,c.default)(n).apply(this,arguments))}return(0,f.default)(n,l),(0,u.default)(n,[{key:"_renderE2EELabel",value:function(){return b.default.createElement(s.E2EELabel,null)}},{key:"_renderLocalRecordingLabel",value:function(){return b.default.createElement(_.LocalRecordingLabel,null)}},{key:"_renderRecordingLabel",value:function(l){return b.default.createElement(y.RecordingLabel,{mode:l})}},{key:"_renderTranscribingLabel",value:function(){return b.default.createElement(E.TranscribingLabel,null)}},{key:"_renderInsecureRoomNameLabel",value:function(){return b.default.createElement(k.InsecureRoomNameLabel,null)}},{key:"_renderVideoQualityLabel",value:function(){return b.default.createElement(p.VideoQualityLabel,null)}}]),n})(b.Component);e.default=R},1613,[2,3,4,5,6,9,10,59,1614,1349,1618,1532,1599,1407,1604,1509]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},1614,[1615,1616,1617]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setE2EEKey=function(t){return{type:E.SET_E2EE_KEY,key:t}};var E=r(d[0])},1615,[1616]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_E2EE_KEY=void 0;e.SET_E2EE_KEY='SET_E2EE_KEY'},1616,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.E2EELabel=void 0;e.E2EELabel=void 0},1617,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})},1618,[1619,1620,1621,1625]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.localRecordingEngaged=function(t){return{type:n.LOCAL_RECORDING_ENGAGED,recordingEngagedAt:t}},e.localRecordingUnengaged=function(){return{type:n.LOCAL_RECORDING_UNENGAGED}},e.statsUpdate=function(t){return{type:n.LOCAL_RECORDING_STATS_UPDATE,stats:t}};var n=r(d[0])},1619,[1620]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.LOCAL_RECORDING_STATS_UPDATE=e.LOCAL_RECORDING_UNENGAGED=e.LOCAL_RECORDING_ENGAGED=void 0;e.LOCAL_RECORDING_ENGAGED='LOCAL_RECORDING_ENGAGED';e.LOCAL_RECORDING_UNENGAGED='LOCAL_RECORDING_UNENGAGED';e.LOCAL_RECORDING_STATS_UPDATE='LOCAL_RECORDING_STATS_UPDATE'},1620,[]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"LocalRecordingButton",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"LocalRecordingLabel",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(e,"LocalRecordingInfoDialog",{enumerable:!0,get:function(){return u.default}});var t=n(r(d[1])),o=n(r(d[2])),u=n(r(d[3]))},1621,[3,1622,1623,1624]);
__d(function(g,r,i,a,m,e,d){},1622,[]);
__d(function(g,r,i,a,m,e,d){},1623,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),c=n(r(d[4])),s=n(r(d[5])),u=n(r(d[6])),f=n(r(d[7])),p=t(r(d[8])),v=r(d[9]),_=r(d[10]),E=r(d[11]),h=r(d[12]),N=r(d[13]),k=r(d[14]),S=(function(t){function n(t){var o;return(0,l.default)(this,n),(o=(0,c.default)(this,(0,s.default)(n).call(this,t))).state={durationString:''},o}return(0,u.default)(n,t),(0,o.default)(n,[{key:"componentDidMount",value:function(){var t=this;this._timer=setInterval(function(){t.setState(function(n,l){var o=new Date;return{durationString:t._getDuration(o,l.recordingEngagedAt)}});try{t.props.dispatch((0,N.statsUpdate)(k.recordingController.getParticipantsStats()))}catch(t){}},1e3)}},{key:"componentWillUnmount",value:function(){this._timer&&(clearInterval(this._timer),this._timer=null)}},{key:"render",value:function(){var t=this.props,n=t.isModerator,l=t.t;return p.default.createElement(v.Dialog,{cancelKey:'dialog.close',submitDisabled:!0,titleKey:"localRecording.dialogTitle"},p.default.createElement("div",{className:"localrec-control"},p.default.createElement("span",{className:"localrec-control-info-label"},l('localRecording.moderator')+":"),p.default.createElement("span",{className:"info-value"},l(n?'localRecording.yes':'localRecording.no'))),this._renderModeratorControls(),this._renderDurationAndFormat())}},{key:"_renderDurationAndFormat",value:function(){var t=this.props,n=t.encodingFormat,l=t.isEngaged,o=t.t,c=this.state.durationString;return l?p.default.createElement("div",null,p.default.createElement("div",null,p.default.createElement("span",{className:"localrec-control-info-label"},o('localRecording.duration')+":"),p.default.createElement("span",{className:"info-value"},''===c?o('localRecording.durationNA'):c)),p.default.createElement("div",null,p.default.createElement("span",{className:"localrec-control-info-label"},o('localRecording.encoding')+":"),p.default.createElement("span",{className:"info-value"},n))):null}},{key:"_renderStats",value:function(){var t=this,n=this.props.stats;if(void 0===n)return null;var l=Object.keys(n);return p.default.createElement("div",{className:"localrec-participant-stats"},this._renderStatsHeader(),l.map(function(n,l){return t._renderStatsLine(l,n)}))}},{key:"_renderStatsLine",value:function(t,n){var l=this.props.stats,o='localrec-participant-stats-item__status-dot ';return o+=l[n].recordingStats?l[n].recordingStats.isRecording?'status-on':'status-off':'status-unknown',p.default.createElement("div",{className:"localrec-participant-stats-item",key:t},p.default.createElement("div",{className:"localrec-participant-stats-item__status"},p.default.createElement("span",{className:o})),p.default.createElement("div",{className:"localrec-participant-stats-item__name"},l[n].displayName||n),p.default.createElement("div",{className:"localrec-participant-stats-item__sessionid"},l[n].recordingStats.currentSessionToken))}},{key:"_renderStatsHeader",value:function(){var t=this.props.t;return p.default.createElement("div",{className:"localrec-participant-stats-item"},p.default.createElement("div",{className:"localrec-participant-stats-item__status"}),p.default.createElement("div",{className:"localrec-participant-stats-item__name"},t('localRecording.participant')),p.default.createElement("div",{className:"localrec-participant-stats-item__sessionid"},t('localRecording.sessionToken')))}},{key:"_renderModeratorControls",value:function(){var t=this.props,n=t.isModerator,l=t.isEngaged,o=t.t;return n?p.default.createElement("div",null,p.default.createElement("div",{className:"localrec-control-action-links"},p.default.createElement("div",{className:"localrec-control-action-link"},l?p.default.createElement("a",{onClick:this._onStop},o('localRecording.stop')):p.default.createElement("a",{onClick:this._onStart},o('localRecording.start')))),p.default.createElement("div",null,p.default.createElement("span",{className:"localrec-control-info-label"},o('localRecording.participantStats')+":")),this._renderStats()):null}},{key:"_getDuration",value
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1625,[1626]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.recordingController=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=r(d[3]),c=t(r(d[4])),h=r(d[5]),_=r(d[6]),l=new Set(['flac','wav','ogg']),u='flac',f=Object.freeze({IDLE:Symbol('IDLE'),STARTING:Symbol('STARTING'),RECORDING:Symbol('RECORDING'),STOPPING:Symbol('STOPPING'),FAILED:Symbol('FAILED')}),S=new((function(){function t(){(0,n.default)(this,t),this._adapters={},this._conference=null,this._currentSessionToken=-1,this._state=f.IDLE,this._isMuted=!1,this._micDeviceId='default',this._format=u,this._registered=!1,this.registerEvents=this.registerEvents.bind(this),this.getParticipantsStats=this.getParticipantsStats.bind(this),this._onStartCommand=this._onStartCommand.bind(this),this._onStopCommand=this._onStopCommand.bind(this),this._onPingCommand=this._onPingCommand.bind(this),this._doStartRecording=this._doStartRecording.bind(this),this._doStopRecording=this._doStopRecording.bind(this),this._updateStats=this._updateStats.bind(this),this._switchToNewSession=this._switchToNewSession.bind(this)}return(0,o.default)(t,[{key:"registerEvents",value:function(t){this._registered||(this._conference=t,this._conference&&(this._conference.addCommandListener("localRecStop",this._onStopCommand),this._conference.addCommandListener("localRecStart",this._onStartCommand),this._conference.addCommandListener("localRecPing",this._onPingCommand),this._registered=!0),this._conference.isModerator()||this._conference.sendCommandOnce("localRecPing",{}))}},{key:"startRecording",value:function(){this.registerEvents(),this._conference&&this._conference.isModerator()?(this._conference.removeCommand("localRecStop"),this._conference.sendCommand("localRecStart",{attributes:{sessionToken:this._getRandomToken(),format:this._format}})):this._onWarning&&this._onWarning('localRecording.messages.notModerator')}},{key:"stopRecording",value:function(){this._conference&&(this._conference.isModerator()?(this._conference.removeCommand("localRecStart"),this._conference.sendCommand("localRecStop",{attributes:{sessionToken:this._currentSessionToken}})):this._onWarning&&this._onWarning('localRecording.messages.notModerator'))}},{key:"downloadRecordedData",value:function(t){var n=this;this._adapters[t]?this._adapters[t].exportRecordedData().then(function(o){var s=o.data,c=o.format,_="session_"+t+"_"+n._conference.myUserId()+"."+c;(0,h.downloadBlob)(s,_)}).catch(function(n){c.default.error("Failed to download audio for session "+t+". Error: "+n)}):c.default.error("Invalid session token for download "+t)}},{key:"setMicDevice",value:function(t){t!==this._micDeviceId&&(this._micDeviceId=String(t),this._state===f.RECORDING&&(c.default.log('Before switching microphone...'),this._adapters[this._currentSessionToken].setMicDevice(this._micDeviceId).then(function(){c.default.log('Finished switching microphone.')}).catch(function(){c.default.error('Failed to switch microphone')})),c.default.log("Switch microphone to "+this._micDeviceId))}},{key:"setMuted",value:function(t){this._isMuted=Boolean(t),this._state===f.RECORDING&&this._adapters[this._currentSessionToken].setMuted(this._isMuted)}},{key:"switchFormat",value:function(t){l.has(t)?(this._format=t,c.default.log("Recording format switched to "+t)):c.default.log("Unknown format "+t+". Ignoring...")}},{key:"getLocalStats",value:function(){return{currentSessionToken:this._currentSessionToken,isRecording:this._state===f.RECORDING,recordedBytes:0,recordedLength:0}}},{key:"getParticipantsStats",value:function(){for(var t=this._conference.getParticipants().map(function(t){return{id:t.getId(),displayName:t.getDisplayName(),recordingStats:JSON.parse(t.getProperty("localRecStats")||'{}'),isSelf:!1}}),n={},o=0;o<t.length;++o)n[t[o].id]=t[o];var c=this._conference.myUserId();return n[c]={id:c,displayName:s.i18next.t('localRecording.me'),recordingStats:this.getLocalStats(),isSelf:!0},n}},{key:"_changeState",value:function(t){this._state!==t&&(c.default.log("state change: "+this._state.toString()+" -> "+t.toString()),this._state=t)}},{key:"_updateStats",v
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=(0,r(d[0]).getLogger)('features/local-recording');e.default=o},1627,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},1628,[1629,1630,1631,1632,1634]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.OggAdapter=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),c=t(r(d[5])),l=t(r(d[6])),f=(function(t){function f(){var t,o;(0,n.default)(this,f);for(var c=arguments.length,l=new Array(c),_=0;_<c;_++)l[_]=arguments[_];return(o=(0,u.default)(this,(t=(0,s.default)(f)).call.apply(t,[this].concat(l))))._mediaRecorder=null,o._initPromise=null,o._recordedData=null,o}return(0,c.default)(f,t),(0,o.default)(f,[{key:"start",value:function(t){var n=this;return this._initPromise||(this._initPromise=this._initialize(t)),this._initPromise.then(function(){return new Promise(function(t){n._mediaRecorder.start(),t()})})}},{key:"stop",value:function(){var t=this;return new Promise(function(n){t._mediaRecorder.onstop=function(){return n()},t._mediaRecorder.stop()})}},{key:"exportRecordedData",value:function(){return null!==this._recordedData?Promise.resolve({data:this._recordedData,format:'ogg'}):Promise.reject('No audio data recorded.')}},{key:"setMuted",value:function(t){var n=!t;if(!this._stream)return Promise.resolve();var o=this._stream.getAudioTracks()[0];return o?(o.enabled!==n&&(o.enabled=n,l.default.log(t?'Mute':'Unmute')),Promise.resolve()):(l.default.error('Cannot mute/unmute. Track not found!'),Promise.resolve())}},{key:"_initialize",value:function(t){var n=this;return this._mediaRecorder?Promise.resolve():new Promise(function(o,u){n._getAudioStream(t).then(function(t){n._stream=t,n._mediaRecorder=new MediaRecorder(t),n._mediaRecorder.ondataavailable=function(t){return n._saveMediaData(t.data)},o()}).catch(function(t){l.default.error("Error calling getUserMedia(): "+t),u()})})}},{key:"_saveMediaData",value:function(t){this._recordedData=t}}]),f})(r(d[7]).RecordingAdapter);e.OggAdapter=f},1629,[3,4,5,6,9,10,1627,1630]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.RecordingAdapter=void 0;var o=t(r(d[1])),n=t(r(d[2])),c=t(r(d[3])),u=(function(){function t(){(0,o.default)(this,t)}return(0,n.default)(t,[{key:"start",value:function(t){throw new Error('Not implemented')}},{key:"stop",value:function(){throw new Error('Not implemented')}},{key:"exportRecordedData",value:function(){throw new Error('Not implemented')}},{key:"setMuted",value:function(t){throw new Error('Not implemented')}},{key:"setMicDevice",value:function(t){throw new Error('Not implemented')}},{key:"_getAudioStream",value:function(t){return c.default.createLocalTracks({devices:['audio'],micDeviceId:t}).then(function(t){if(1!==t.length)throw new Error("Unexpected number of streams from createLocalTracks.");var o=t[0].stream;if(void 0===o)throw new Error('Failed to create local track.');return o})}}]),t})();e.RecordingAdapter=u},1630,[3,4,5,879]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.downloadBlob=function(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'recording.ogg',t=window.URL.createObjectURL(o),c=document.createElement('a');c.style='display: none',c.href=t,c.download=n,document.body.appendChild(c),c.click(),document.body.removeChild(c)}},1631,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.WavAdapter=void 0;var n=t(r(d[1])),s=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),h=t(r(d[7])),v=(function(t){function v(){var t;return(0,n.default)(this,v),(t=(0,o.default)(this,(0,u.default)(v).call(this)))._wavLength=0,t._wavBuffers=[],t._isInitialized=!1,t._initPromise=null,t._onAudioProcess=t._onAudioProcess.bind((0,f.default)((0,f.default)(t))),t}return(0,l.default)(v,t),(0,s.default)(v,[{key:"start",value:function(t){var n=this;return this._initPromise||(this._initPromise=this._initialize(t)),this._initPromise.then(function(){n._wavBuffers=[],n._wavLength=0,n._connectAudioGraph()})}},{key:"stop",value:function(){return this._disconnectAudioGraph(),this._data=this._exportMonoWAV(this._wavBuffers,this._wavLength),this._audioProcessingNode=null,this._audioSource=null,this._isInitialized=!1,Promise.resolve()}},{key:"exportRecordedData",value:function(){return null!==this._data?Promise.resolve({data:this._data,format:'wav'}):Promise.reject('No audio data recorded.')}},{key:"setMuted",value:function(t){var n=!t;if(!this._stream)return Promise.resolve();var s=this._stream.getAudioTracks()[0];return s?(s.enabled!==n&&(s.enabled=n,h.default.log(t?'Mute':'Unmute')),Promise.resolve()):(h.default.error('Cannot mute/unmute. Track not found!'),Promise.resolve())}},{key:"setMicDevice",value:function(t){return this._replaceMic(t)}},{key:"_createWavHeader",value:function(t){var n=new ArrayBuffer(44),s=new DataView(n);return _(s,0,'RIFF'),_(s,8,'WAVE'),_(s,12,'fmt '),s.setUint32(16,16,!0),s.setUint16(20,1,!0),s.setUint16(22,1,!0),s.setUint32(24,this._sampleRate,!0),s.setUint32(28,1*Number(this._sampleRate)*16/8,!0),s.setUint16(32,1*Number(16)/8,!0),s.setUint16(34,16,!0),_(s,36,'data'),s.setUint32(4,32+t,!0),s.setUint32(40,t,!0),new Uint8Array(n)}},{key:"_initialize",value:function(t){var n=this;return this._isInitialized?Promise.resolve():this._initializeAudioContext(t,this._onAudioProcess).then(function(){n._isInitialized=!0})}},{key:"_onAudioProcess",value:function(t){var n=t.inputBuffer.getChannelData(0);this._wavBuffers.push(new Float32Array(n)),this._wavLength+=n.length}},{key:"_exportMonoWAV",value:function(t,n){for(var s=2*n,o=new ArrayBuffer(44+s),u=new DataView(o),l=this._createWavHeader(s),f=l.length,h=0;h<f;++h)u.setUint8(h,l[h]);return c(u,44,t),new Blob([u],{type:'audio/wav'})}}]),v})(r(d[8]).AbstractAudioContextAdapter);function _(t,n,s){for(var o=s.length,u=0;u<o;++u)t.setUint8(n+u,s.charCodeAt(u))}function c(t,n,s){var o,u,l,f,h,v=s.length,_=n;for(o=0;o<v;++o)for(h=(l=s[o]).length,u=0;u<h;++u,_+=2)f=Math.max(-1,Math.min(1,l[u])),t.setInt16(_,f<0?32768*f:32767*f,!0)}e.WavAdapter=v},1632,[3,4,5,6,9,10,8,1627,1633]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractAudioContextAdapter=void 0;var o=t(r(d[1])),n=t(r(d[2])),u=t(r(d[3])),c=t(r(d[4])),s=t(r(d[5])),_=t(r(d[6])),l=(function(t){function l(){var t;return(0,o.default)(this,l),(t=(0,u.default)(this,(0,c.default)(l).call(this)))._audioContext=null,t._audioProcessingNode=null,t._audioSource=null,t._stream=null,t._sampleRate=44100,t._audioContext=new AudioContext,t._sampleRate=t._audioContext.sampleRate,_.default.log("Current sampleRate "+t._sampleRate+"."),t}return(0,s.default)(l,t),(0,n.default)(l,[{key:"_initializeAudioContext",value:function(t,o){var n=this;return'function'!=typeof o?Promise.reject('a callback function is required.'):this._getAudioStream(t).then(function(t){n._stream=t,n._audioSource=n._audioContext.createMediaStreamSource(t),n._audioProcessingNode=n._audioContext.createScriptProcessor(4096,1,1),n._audioProcessingNode.onaudioprocess=o,_.default.debug('AudioContext is set up.')}).catch(function(t){return _.default.error("Error calling getUserMedia(): "+t),Promise.reject(t)})}},{key:"_connectAudioGraph",value:function(){this._audioSource.connect(this._audioProcessingNode),this._audioProcessingNode.connect(this._audioContext.destination)}},{key:"_disconnectAudioGraph",value:function(){this._audioProcessingNode.onaudioprocess=void 0,this._audioProcessingNode.disconnect(),this._audioSource.disconnect()}},{key:"_replaceMic",value:function(t){var o=this;return this._audioContext&&this._audioProcessingNode?this._getAudioStream(t).then(function(t){var n=o._audioContext.createMediaStreamSource(t);o._audioSource.disconnect(),n.connect(o._audioProcessingNode),o._stream=t,o._audioSource=n}):Promise.resolve()}}]),l})(r(d[7]).RecordingAdapter);e.AbstractAudioContextAdapter=l},1633,[3,4,5,6,9,10,1627,1630]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1634,[1635]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.FlacAdapter=void 0;var o=t(r(d[1])),n=t(r(d[2])),s=t(r(d[3])),l=t(r(d[4])),u=t(r(d[5])),c=t(r(d[6])),_=t(r(d[7])),f=r(d[8]),h=r(d[9]),v=(function(t){function f(){var t;return(0,o.default)(this,f),(t=(0,s.default)(this,(0,l.default)(f).call(this)))._encoder=null,t._stopPromiseResolver=null,t._initWorkerPromiseResolver=null,t._initPromise=null,t._onAudioProcess=t._onAudioProcess.bind((0,c.default)((0,c.default)(t))),t._onWorkerMessage=t._onWorkerMessage.bind((0,c.default)((0,c.default)(t))),t}return(0,u.default)(f,t),(0,n.default)(f,[{key:"start",value:function(t){var o=this;return this._initPromise||(this._initPromise=this._initialize(t)),this._initPromise.then(function(){o._connectAudioGraph()})}},{key:"stop",value:function(){var t=this;return this._encoder?new Promise(function(o){t._initPromise=null,t._disconnectAudioGraph(),t._stopPromiseResolver=o,t._encoder.postMessage({command:h.MAIN_THREAD_FINISH})}):(_.default.error('Attempting to stop but has nothing to stop.'),Promise.reject())}},{key:"exportRecordedData",value:function(){return null!==this._data?Promise.resolve({data:this._data,format:'flac'}):Promise.reject('No audio data recorded.')}},{key:"setMuted",value:function(t){var o=!t;if(!this._stream)return Promise.resolve();var n=this._stream.getAudioTracks()[0];return n?(n.enabled!==o&&(n.enabled=o,_.default.log(t?'Mute':'Unmute')),Promise.resolve()):(_.default.error('Cannot mute/unmute. Track not found!'),Promise.resolve())}},{key:"setMicDevice",value:function(t){return this._replaceMic(t)}},{key:"_initialize",value:function(t){var o=this;return null!==this._encoder?Promise.resolve():new Promise(function(t,n){try{o._loadWebWorker()}catch(t){n()}o._initWorkerPromiseResolver=t,o._encoder.onmessage=o._onWorkerMessage,o._encoder.postMessage({command:h.MAIN_THREAD_INIT,config:{sampleRate:o._sampleRate,bps:16}})}).then(function(){return o._initializeAudioContext(t,o._onAudioProcess)})}},{key:"_onAudioProcess",value:function(t){var o=t.inputBuffer.getChannelData(0);this._encoder.postMessage({command:h.MAIN_THREAD_NEW_DATA_ARRIVED,buf:o})}},{key:"_onWorkerMessage",value:function(t){switch(t.data.command){case h.WORKER_BLOB_READY:this._data=t.data.buf,null!==this._stopPromiseResolver&&(this._stopPromiseResolver(),this._stopPromiseResolver=null,this._encoder.terminate(),this._encoder=null);break;case h.DEBUG:_.default.log(t.data);break;case h.WORKER_LIBFLAC_READY:_.default.log('libflac is ready.'),this._initWorkerPromiseResolver();break;default:_.default.error("Unknown event\n from encoder (WebWorker): \""+t.data.command+"\"!")}}},{key:"_loadWebWorker",value:function(){try{this._encoder=new Worker('/libs/flacEncodeWorker.min.js',{name:'FLAC encoder worker'})}catch(t){try{this._encoder=new Worker('/libs/flacEncodeWorker.js',{name:'FLAC encoder worker'})}catch(t){throw new Error('Failed to load flacEncodeWorker.')}}}}]),f})(f.AbstractAudioContextAdapter);e.FlacAdapter=v},1635,[3,4,5,6,9,10,8,1627,1633,1636]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DEBUG=e.WORKER_BLOB_READY=e.WORKER_LIBFLAC_READY=e.MAIN_THREAD_NEW_DATA_ARRIVED=e.MAIN_THREAD_INIT=e.MAIN_THREAD_FINISH=void 0;e.MAIN_THREAD_FINISH='MAIN_THREAD_FINISH';e.MAIN_THREAD_INIT='MAIN_THREAD_INIT';e.MAIN_THREAD_NEW_DATA_ARRIVED='MAIN_THREAD_NEW_DATA_ARRIVED';e.WORKER_LIBFLAC_READY='WORKER_LIBFLAC_READY';e.WORKER_BLOB_READY='WORKER_BLOB_READY';e.DEBUG='DEBUG'},1636,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1637,[1638]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.sessionManager=void 0;var s=t(r(d[1])),n=t(r(d[2])),o=r(d[3]),u=t(r(d[4]));function l(){return window.performance&&window.performance.now&&window.performance.timing&&window.performance.timing.navigationStart?window.performance.now()+window.performance.timing.navigationStart:Date.now()}var S=Object.freeze({SESSION_STARTED:'SESSION_STARTED',SEGMENT_STARTED:'SEGMENT_STARTED',SEGMENT_ENDED:'SEGMENT_ENDED'}),f=new((function(){function t(){(0,s.default)(this,t),this._sessionsMetadata={},this._loadMetadata()}return(0,n.default)(t,[{key:"_loadMetadata",value:function(){var t=o.jitsiLocalStorage.getItem("localRecordingMetadataVersion1");if(null!==t)try{var s=JSON.parse(t);this._sessionsMetadata=s}catch(t){return void u.default.warn('Failed to parse localStorage item.')}}},{key:"_saveMetadata",value:function(){o.jitsiLocalStorage.setItem("localRecordingMetadataVersion1",JSON.stringify(this._sessionsMetadata))}},{key:"createSession",value:function(t,s){void 0===this._sessionsMetadata[t]?(this._sessionsMetadata[t]={format:s,events:[]},this._sessionsMetadata[t].events.push({type:S.SESSION_STARTED,timestamp:l()}),this._saveMetadata()):u.default.warn("Session "+t+" already exists")}},{key:"getSessions",value:function(){for(var t=Object.keys(this._sessionsMetadata),s=[],n=0;n<t.length;++n){var o=this._sessionsMetadata[t[n]],u={start:o.events[0].timestamp,format:o.format,sessionToken:t[n],segments:this.getSegments(t[n])};s.push(u)}return s.sort(function(t,s){return(t.start||0)-(s.start||0)}),s}},{key:"removeSession",value:function(t){delete this._sessionsMetadata[t],this._saveMetadata()}},{key:"getSegments",value:function(t){var s=this._sessionsMetadata[t];return s?this._constructSegments(s.events):[]}},{key:"beginSegment",value:function(t){return void 0===this._sessionsMetadata[t]?(u.default.warn("Attempting to add segments to nonexistent session "+t),-1):(this._sessionsMetadata[t].events.push({type:S.SEGMENT_STARTED,timestamp:l()}),this._saveMetadata(),this.getSegments(t).length-1)}},{key:"getCurrentSegmentIndex",value:function(t){if(void 0===this._sessionsMetadata[t])return-1;var s=this.getSegments(t);return 0===s.length?-1:s[s.length-1].end?-1:s.length-1}},{key:"endSegment",value:function(t){void 0===this._sessionsMetadata[t]?u.default.warn("Attempting to end a segment in nonexistent session "+t):(this._sessionsMetadata[t].events.push({type:S.SEGMENT_ENDED,timestamp:l()}),this._saveMetadata())}},{key:"_constructSegments",value:function(t){if(0===t.length)return[];var s=[],n=null,o={};function l(){if(void 0===o.gapBefore||null===o.gapBefore)if(s.length>0&&s[s.length-1].end){var t=s[s.length-1];o.start&&t.end?o.gapBefore=o.start-t.end:o.gapBefore=null}else null!==n&&0===s.length?o.gapBefore=o.start?o.start-n:null:o.gapBefore=null;o.duration=o.end&&o.start?o.end-o.start:null,s.push(o),o={}}for(var f=0;f<t.length;++f){var v=t[f];switch(v.type){case S.SESSION_STARTED:null===n?n=v.timestamp:u.default.warn('Unexpected SESSION_STARTED event.',v);break;case S.SEGMENT_STARTED:void 0===o.start||null===o.start?o.start=v.timestamp:(l(),o.start=v.timestamp);break;case S.SEGMENT_ENDED:void 0===o.start||null===o.start?u.default.warn('Unexpected SEGMENT_ENDED event',v):(o.end=v.timestamp,l());break;default:u.default.warn('Unexpected error during _constructSegments')}}return o.start&&l(),s}}]),t})());e.sessionManager=f,window.sessionManager=f},1638,[3,4,5,483,1627]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=t(r(d[1])),n=t(r(d[2])),l=t(r(d[3])),f=t(r(d[4])),o=t(r(d[5])),_=r(d[6]),s=r(d[7]),c=r(d[8]),p=(function(t){function _(){return(0,u.default)(this,_),(0,l.default)(this,(0,f.default)(_).apply(this,arguments))}return(0,o.default)(_,t),(0,n.default)(_,[{key:"_getColor",value:function(){return c.INSECURE_ROOM_NAME_LABEL_COLOR}},{key:"_getLabel",value:function(){return this.props.t('security.insecureRoomNameWarning')}}]),_})(s.ExpandedLabel),v=(0,_.translate)(p);e.default=v},1639,[3,4,5,6,9,10,726,1537,1640]);
Merge 4.13.0 into master (#2728)
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
* [FIX] Share extension and save image not working on Android 10 (#2651)
* Bump version to 4.13.0 (#2657)
* [FIX] Update Loading logo (#2658)
* [NEW] Support client certificates for SSL (two-way authentication) (Android) (#2624)
* wip: Android SSL Pinning
* Use own SSLPinningModule
* wip: Use Rocket.Chat own react-native
* wip: Fresco Images using custom OkHttpClient
* wip: react-native-webview onReceivedClientCertRequest
* feat: Save Images of a SSL Pinning protected server
* chore: SSLPinning package as a interface to iOS & Android implementations
* chore: update glide
* feat: load images under a client ssl certificate protected server
* chore: remove patch
* feat: Audio & Video under a SSL Client protected server
* fix: Unpin certificate when change server
* feat: Fast Image as a patch
* chore: update fast-image
* Fix merge
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel actions (#2644)
* room roles
* handle owner
* endpoints
* Leader and Moderator
* Remove user from room
* stash ignore
* Add subscription.ignored column
* ignore user
* Fix icons
* I18n
* Minor i18n fixes
* Direct Message and open action sheet after a normal tap
* Fix icon
* stash isIgnored
* isManualUnignored message
* Fix update
* Ignored
* Mute, moderator, leader, owner, remove from room
* ignore
* Tests
* pt-BR
* Update pods
* Apply requested changes
* Add RC version on requests
* [NEW] Support RTL (#2656)
* wip: RTL (iOS)
* wip: RTL (Android)
* wip: reload bundle when change between RTL languages
* fix: Stack Animation on Android
* fix: update snapshot
* fix: Swipe Room Actions in RTL mode
* fix: snapshots
* Move isRTL to i18n
* Fix styling
* Update tests
* Update pods
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Initial users' status is not fetched (#2664)
* [FIX] Messages overlapping and emoji keyboard not opening (#2670)
* Replace keyboard libs for react-native-ui-lib
* Apply Jitsi branch
* Require keyboard on bundle
* Update ui-lib
* chore: update deps
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] Force normalized params for 2FA (#2683)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Thread message flickering while thread parent isn't found (#2676)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Light theme not working on Android with Dark Theme set (#2675)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App not prompting join code for password protected channels (#2514)
* Adding joinCode parameter
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Insert join code input
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add joinCode field on db
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add label i18 pt-br and en-us
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add insert join code text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Fix atribute name
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
* Add join text
Signed-off-by: Vitor.Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
* Fix attributes joinCode, joinCodeRequired and pass attribute param in navigation
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Fixing attribute joinCodeRequired pass to goRoom
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Changed textinput style
Signed-off-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Delete not necessary attribute
Signed-off-by: Daniel Maike <danmke@hotmail.com>
* Fixing input style
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
* Undo unncessary changes
* use a join code modal
* tests: e2e tests to join protected channel
* fix: undo unnecessary change
* tests: cancel join code
* Remove some tests
* Minor fixes
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: youssef-md <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Add Arabic (#2537)
* Arabic language setup
* Added arabic translation
* Arabic translation Proofreading
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18N] Add missing zh_TW and zh_CN strings (#2680)
* feat(i18n): add some missing strings and improve some translation
* fix: add missing server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add username on status messages (#2553)
* 1689 - missing user name for status messages
* 1689 - missing user name for status messages. Fixed broken e2e test "should pin message".
* Minor tweak
* Remove center style
* Small refactor on User
* Remove toLowerCase
* Update tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Filenames are incorrect in non-latin alphabets on upload (#2671)
* fix: filename on react-native-image-crop-picker
* fix: use rn-fetch-blob to upload files
* fix: FileUpload as a service
* fix: cancel upload on iOS
* fix: file upload from share extension
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Ease white labelling for Android (#2685)
* improve white labelling for Android
* Move application ID to gradle properties
* Fix CI
* Point foss sufix to main app
* Use npx on android-whitelabel script
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Chats order (#2688)
* Persist highest value on subscription.roomUpdatedAt
* Update tests
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Re-enable Jitsi Chat (#2687)
* Fix main jitsi
* Fix iOS
* Clear build.gradle cache
* Don't restore gradle
* cache is back
* Use master
* Point to react-native-jitsi-meet#master
* [CHORE] Build official apps on CI (#2701)
* Duplicated target and changed Bridging Header
* Display name
* Unnecessary dumb swift file removed
* Buildable name
* Reorder Info.plist
* Rename Official target's bundle id
* Ignore .mobileprovision
* Fix provisioning of official app
* Starting signing
* stash fastfile
* starting official ci iOS
* Uncomment Fastfile keychain
* Fix CI config
* allowProvisioningUpdates
* Changing AppIcon and Splash Screen
* Remove unnecessary folder inside of Images.xcassets
* Reorder notificationservice and shareextension plists
* Fix signing
* Manual signing style for official
* Split official signing
* Update project provisioning
* Use ENV as profile
* Output match
* Keys
* TestFlight refactor
* Setting up android
* android-official-play-build job
* Start removing unnecessary fastlane tasks on Android
* Trying to refactor Android jobs
* android-env
* Remove foss build for now
* Fork
* Fix if conditions
* Fix push
* ios-build command
* Rename Android builds
* Upload dSYMs
* Refactoring workflow
* Reorder upload-to-testflight
* upload-to-google-play-beta command
* Fix ci
* Fix android fork build
* Fix keystore
* Fix options on fastlane android
* Fix keystore
* Check isOfficial on iOS
* Check isOfficial on db
* Remove unused imports
* Database names on Android
* Tag fix
* Minor fixes
* Set IS_OFFICIAL on CI
* Fix detox
* follow review suggestions
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [i18n] Update fr (#2697)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Update fr (#2705)
Typo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Empty space on Messagebox (#2704)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Yarn android scripts (#2716)
* [CHORE] Rename Experimental iOS lane (#2717)
* Move build_fork to the end
* Rename release to build_experimental
* [IMPROVEMENT] Use class variable instead of state for List's animated (#2718)
* [FIX] Bottom sheet being hidden sometimes (#2722)
* [IMPROVEMENT] Match background and text mention colors (#2723)
* [FIX] App freezing if Markdown preview contains sequential empty spaces (#2726)
* Remove sequential empty spaces from Markdown preview
* Use Markdown preview on RepliedThread
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
Co-authored-by: Daniel Maike <danmke@hotmail.com>
Co-authored-by: Vitor Leal <vitor_leal2201@hotmail.com>
Co-authored-by: Fernando Aguilar <fernando.aguilar@hotmail.com.br>
Co-authored-by: Abdullah Alhamoud <10301923+abalhamoud@users.noreply.github.com>
Co-authored-by: Dave Koo <dkoo761@gmail.com>
Co-authored-by: Fazil Boudjelal <fazildiablou@hotmail.fr>
Co-authored-by: Lucas Dousse <Cormoran96@users.noreply.github.com>
2020-12-21 15:55:40 +00:00
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.INSECURE_ROOM_NAME_LABEL_COLOR=e.NAVBAR_GRADIENT_COLORS=void 0;var o=r(d[0]),t=r(d[1]),n=r(d[2]);e.NAVBAR_GRADIENT_COLORS=['#000000FF','#00000000'];var l=t.ColorPalette.warning;e.INSECURE_ROOM_NAME_LABEL_COLOR=l;var c={bottomGradient:{bottom:0,flexDirection:'column',justifyContent:'flex-end',minHeight:140,left:0,position:'absolute',right:0},conference:(0,t.fixAndroidViewClipping)({alignSelf:'stretch',backgroundColor:t.ColorPalette.appBackground,flex:1}),displayNameContainer:{margin:10},gradient:{position:'absolute',top:0,left:0,right:0,flex:1},gradientStretchBottom:{height:290},gradientStretchTop:{height:140},indicatorContainer:{flex:1,flexDirection:'row',justifyContent:'flex-end',margin:t.BoxModel.margin},indicatorContainerWide:{marginRight:n.FILMSTRIP_SIZE+t.BoxModel.margin},labelWrapper:{flexDirection:'column',position:'absolute',right:0,top:0},lonelyButton:{alignItems:'center',borderRadius:24,flexDirection:'row',height:48,justifyContent:'space-around',paddingHorizontal:12},lonelyButtonComponents:{marginHorizontal:6},lonelyMeetingContainer:{alignSelf:'stretch',alignItems:'center',padding:2*t.BoxModel.padding},lonelyMessage:{paddingVertical:12},navBarButton:{iconStyle:{color:t.ColorPalette.white,fontSize:24},underlayColor:'transparent'},navBarContainer:{flexDirection:'column',left:0,position:'absolute',right:0,top:0},navBarSafeView:{left:0,position:'absolute',right:0,top:0},navBarWrapper:{alignItems:'center',flex:1,flexDirection:'row',height:44,justifyContent:'space-between',paddingHorizontal:14},roomTimer:{color:t.ColorPalette.white,fontSize:15,opacity:.6},roomName:{color:t.ColorPalette.white,fontSize:17,fontWeight:'400'},roomNameWrapper:{flexDirection:'column',alignItems:'center',left:0,paddingHorizontal:48,position:'absolute',right:0},toolboxAndFilmstripContainer:{bottom:0,flexDirection:'column',justifyContent:'flex-end',left:0,paddingBottom:t.BoxModel.padding,position:'absolute',right:0,top:3*t.BoxModel.margin},insecureRoomNameLabel:{backgroundColor:l}};e.default=c,o.ColorSchemeRegistry.register('Conference',{lonelyButton:{backgroundColor:(0,o.schemeColor)('inviteButtonBackground')},lonelyMessage:{color:(0,o.schemeColor)('onVideoText')}})},1640,[438,522,1349]);
Merge 4.12.1 into master (#2649)
* [FIX] Android build (#2094)
* [FIX] Blink header DM (#2093)
* [FIX] Blink header DM
* Remove query
* [FIX] Push RoomInfoView
* remove unnecessary try/catch
* [FIX] RoomInfo > Message (Tablet)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Default biometry enabled (#2095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Enable navigating to a room from auth deep linking (#2115)
* Wait for login success to navigate
* Enable auth and room deep linking at the same time
* [FIX] NewMessageView Press Item should open DM (#2116)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Roles throwing error (#2110)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wait attach activity before changeNavigationBarColor (#2111)
* [FIX] Wait attach activity before changeNavigationBarColor
* Remove timeout and add try/catch
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] UIKit crash when some app send a list (#2117)
* [FIX] StoryBook
* [FIX] UIKit crash when some app send a list
* [CHORE] Update snapshot
* [CHORE] Remove token & id
* [FIX] Change bar color while no activity attached (#2130)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock options i18n (#2120)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Added missing German translation strings (#2105)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Sometimes SDK is null when try to connect (#2131)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Autocomplete position on Android (#2106)
* [FIX] Autocomplete position on Android
* [FIX] Set selection to 0 when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[FIX] Autocomplete position on Android (#2106)" (#2136)
This reverts commit e8c38d6f6f69ae396a4aae6e37336617da739a6d.
* [FIX] Here and all mentions shouldn't refer to users (#2137)
* [FIX] No send data to bugsnag if it's an aborted request (#2133)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Update and separate E2E tests (#2126)
* Tests passing until roomslist
* create room
* roominfo
* change server
* broadcast
* profile
* custom status
* forgot password
* working
* room and onboarding
* Tests separated
* config.yml refactor
* Revert "config.yml refactor"
This reverts commit 0e984d3029e47612726bf199553f7abdf24843e5.
* CI
* lint
* CI refactor
* Onboarding tests
* npx detox
* Add all tests
* Save brew cache
* mac-env executor
* detox-test command
* Update readme
* Remove folder
* [FIX] Screen Lock Time respect local value (#2141)
* [FIX] Screen Lock Time respect local value
* [FIX] Enable biometry at the first passcode change
* Bump version to 4.8.0 (#2147)
* [IMPROVEMENT] Refactor icon package (#2146)
* [IMPROVEMENT] Refactor Icon Package
* some size fixes
* [CHORE] Update WatermelonDB to 0.16.2 (#2166)
* [CHORE] Update WatermelonDB to 0.16.2
* Patch watermelon
* Markdown linting for e2e README (#2173)
* Markdown linting for e2e README
* Running a subset of tests
* [FIX] Load messages when hideSystemMessages is enabled (#2101)
* [WIP] Load messages when hideSystemMessages is enabled
* Improve method name
* Minor improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Respect server HideSystemMessages (#2175)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Screen Lock (#2177)
* [FIX] Screen Lock
* improve variable name
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Load messages issue when trying to get ts from empty results (#2185)
* [FIX] Show registration form when add server by a invite link (#2187)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 2FA email - send code again (#2188)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed
* compiling
* Outside working
* InsideStack compiling
* Switch stack
* Starting room
* RoomView header
* SafeAreaView
* Slide from right stack animation
* stash
* Fix params
* Create channel
* inapp notification
* Custom status
* Add server working
* Refactor appStart
* Attachment
* in-app notification
* AuthLoadingView
* Remove compat
* Navigation
* Outside animations
* Fix new server icon
* block modal
* AttachmentView header
* Remove unnecessary code
* SelectedUsersView header
* StatusView
* CreateDiscussionView
* RoomInfoView
* RoomInfoEditView style
* RoomMembersView
* RoomsListView header
* RoomView header
* Share extension
* getParam
* Focus/blur
* Trying to fix inapp
* Lint
* Simpler app container
* Update libs
* Revert "Simpler app container"
This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.
* Load messages faster
* Fix safearea on ReactionsModal
* Update safe area to v3
* lint
* Fix transition
* stash - drawer replace working
* stash - modal nav
* RoomActionsView as tablet modal
* RoomStack
* Stop showing RoomView header when there's no room
* Custom Header and different navigation based on stack
* Refactor setHeader
* MasterDetailContext
* RoomView header
* Fix isMasterDetail rule
* KeyCommands kind of working
* Create channel on tablet
* RoomView sCU
* Remove withSplit
* Settings opening as modal
* Settings
* StatusView headerLeft
* Admin panel
* TwoFactor style
* DirectoryView
* ServerDropdown and SortDropdown animations
* ThreadMessagesView
* Navigate to empty RoomView on server switch when in master detail
* ProfileView header
* Fix navigation issues
* Nav to any room info on tablet
* Room info
* Refactoring
* Fix rooms search
* Roomslist commands
* SearchMessagesView close modal
* Key commands
* Fix undefined subscription
* Disallow navigate to focused room
* isFocused state on RoomsListView
* Blur text inputs when focus is lost
* Replace animation
* Default nav theme
* Refactoring
* Always open Attachment with close modal button
* ModalContainer backdrop following themes
* Screen tracking
* Refactor get active route for in-app notification
* Only mark room as focused when in master detail layout
* Lint
* Open modals as fade from bottom on Android
* typo
* Fixing tests
* Fix in-app update
* Fixing goRoom issues
* Refactor stack names
* Fix unreadsCount
* Fix stack
* Fix header animation
* Refactor ShareNavigation
* Refactor navigation theme
* Make sure title is set
* Fix create discussion navigation
* Remove unused variable
* Create discussions from actions fixed
* Layout animation
* Screen lock on share extension
* Unnecessary change
* Admin border
* Set header after state callback
* Fix key commands on outside stack
* Fix back button pressed
* Remove layout animations from Android
* Tweak animations on Android
* Disable swipe gesture to open drawer
* Fix current item on RoomsListView
* Fix add server
* Fix drawer
* Fix broadcast
* LayoutAnimation instead of Transitions
* Fix onboarding back press
* Fix assorted tests
* Create discussion fix
* RoomInfoView header
* Drawer active item
* [NEW] Action Sheet (#2114)
* [WIP] New Action Sheet
* [NEW] Header Indicator
* [IMPROVEMENT] Header Logic
* [NEW] Use EventEmitter to show ActionSheet for while
* [FIX] Animation
* [IMPROVEMENT] Use provider
* [FIX] Add callback
* [FIX] Message Actions
* [FIX] Add MessageActions icons
* [NEW] MessageErrorActions
* [IMPROVEMENT] OnClose
* [FIX] Adjust height
* [FIX] Close/Reopen
* [CHORE] Remove react-native-action-sheet
* [CHORE] Move ActionSheet
* [FIX] Reply Message
* [IMPROVEMENT] Hide ActionSheet logic
* [WIP] Custom MessageActions Header
* [IMPROVEMENT] MessageActions Header
* [IMPROVEMENT] Enable Scroll
* [FIX] Scroll on Android
* Move to react-native-scroll-bottom-sheet
* Stash
* Refactor actions
* Revert some changes
* Trying react-native-modalize
* Back to HOC
* ActionSheet style
* HOC Header
* Reaction actionSheet
* Fix messageBox actions
* Fix add reaction
* Change to flatListProps
* fix modalize android scroll
* Use react-native-scroll-bottom-sheet
* [NEW] BottomSheet dismissable & [FIX] Android not opening
* [NEW] Show emojis based on screen width
* [WIP] Adjust to content height
* [IMPROVEMENT] Responsible
* [IMPROVEMENT] Use alert instead actionSheet at NewServerView
* [FIX] Handle tablet cases
* [IMPROVEMENT] Remove actionSheet of RoomMembersView
* [IMPROVEMENT] Min snap distance when its portrait
* [CHORE] Remove unused Components
* [IMPROVEMENT] Remove duplicated add-reaction
* [IMPROVEMENT] Refactor Icon Package
* [IMPROVEMENT] Use new icons
* [FIX] Select message at MessageActions before getOptions
* [FIX] Custom header height
* [CHORE] Remove patch & [FIX] Tablet bottom sheet
* [FIX] Use ListItem height to BottomSheet Height
* Some fixes
* [FIX] Custom MessageActions header
* [FIX] Android height adjust
* [IMPROVEMENT] Item touchable & [FIX] Respect pin permission
* [IMPROVEMENT] More than one snap point
* some size fixes
* improve code
* hide horizontal scroll indicator
* [FIX] Focus MessageBox on edit message
* [FIX] Ripple color
* [IMPROVEMENT] Backdrop must keep same opacity after 50% of the screen
* [TEST] Change animation config
* [IMPROVEMENT] BackHandler should close the ActionSheet
* [CHORE] Add react-native-safe-area-context
* [FIX] Provide a bottom padding at notch devices
* [IMPROVEMENT] Improve backdrop input/output range
* [FIX] Weird Android Snap behavior
* [PATCH] React-native-scroll-bottom-sheet
* [CI] Re-run build
* [FIX] Landscape android
* [IMPROVEMENT] Cover 50% of the screen at the landscape mode
* [FIX] Adjust emoji content to width size
* [IMPROVEMENT] Use hooks library
* [IMPROVEMENT] Close the actionSheet when orientation change
* deactivate safe-area-context for while
* [REVERT] Re-add react-native-safe-area-context (3.0.2)
* [IMPROVEMENT] Use focused background
* [TESTS] E2E Tests updated to new BottomSheet
* [NEW] Add cancel button
* [FIX] Cancel button at android
* [IMPROVEMENT] Use cancelable bottom sheet at room members view
* [IMPROVEMENT] Use better function names
* [IMPROVEMENT] Use getItemLayout
* [FIX][TEMP] Animation
* Review
* Build
* Header keyExtractor
* Rename function
* Tweak animation
* Refactoring
* useTheme
* Refactoring
* TestIDs
* Refactor
* Remove old lib
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add fastlane to android module and configure CI (#2100)
* [IMPROVEMENT] Use react-native-notifier for in-app notifications (#2139)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Create DimensionsContext (#2098)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Remove duplicated sCU condition (#2194)
* [FIX] The auto translate toggle don't save right state (#2142)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Increase "content_hash_max_items" on Watchman (#2181)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] IFrame authentication (#2184)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Send multiple attachments (#2162)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Omnichannel Status Toggle (#2217)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Typing when UI_Use_Real_Name is enabled (#2216)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Logout failing after #2217 (#2222)
* [CHORE] Add wrapper to make Meteor methods calls over REST (#2104)
* [WIP] Use rest instead methodCall
* [WIP] Some method calls using wrapper
* [WIP] Wrap all necessary methodCalls
* fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mark thread as read on open (#2225)
* [IMPROVEMENT] Mark a thread as read
* Use methodCallWrapper
* Check server version
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipt icon on action sheet (#2237)
* [FIX] Handle TypeErrors on navigationRef and draftMessage due to null properties (#2232)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android crashing when restoring from background (#2238)
* [FIX] Send thread attachment (#2242)
* [FIX] Iframe auth Login Button (#2241)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Audio Recording (#2240)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Expo-av audio recorder (#2195)
* [NEW] MessageBox: Expo-av audio recorder
* Refactor MessageBox to accommodate recording button even when recording
* Rename Recording.js -> RecordAudio.js as we could implement video recording in the future
* RecordAudio: Introduce cancel and send buttons
* RecordAudio: Introduce recorderBusy state, refactor MessageBox, remove useless SafeAreaView
* RecordAudio: Better audio quality 🎉, stop recording on unmount
* RecordAudio: Use FileSystem from expo-file-system instead of RNFetchBlob
* chore: flush out react-native-audio
* fix(MessageBox): bring back some missed styles during refactor
* refactor(RecordAudio): use class component
* refactor(RecordAudio): recorder busy to class property, styling changes
* recorder initialisation changes
* fix(RecordAudio): missing await in isRecordingPermissionGranted
* fix(RecordAudio): set isRecording = false on cancel/finish, refactor perms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Unified header UX (#2234)
* Change drawer icon
* Removed iOS variation
* Patch to react-navigation-header-buttons... easier to patch then to overwrite its behaviour :(
* Correctly position title
* Header subtitle
* Layout
* Alignment
* RoomView header
* Renamed RoomHeaderLeft to LeftButtons
* RoomView back button
* Search icon on RoomView
* Refactor
* Fix header on tablet
* Fix search messages close button on tablet
* Search key command
* Network status on RoomView header subtitle
* Update tests
* Scale content
* SearchBox cancel color
* Bump version to 4.9.0 (#2248)
* [FIX] Check for UI_Use_Real_Name when sorting rooms (#2230)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Emoji keyboard not showing custom and frequently used emojis on Share Extension (#2251)
* [FIX] Scroll to top crashing when ref is undefined (#2252)
* [FIX] Check if exists scroll ref
* Remove scrollTo
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AttachmentView crashing during title decode (#2253)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Command previews crashing when API returns an error (#2254)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ThreadMessagesView throwing error when subscription wasn't found (#2255)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Register crashing when error data is undefined (#2256)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Get active route returning undefined (#2257)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] ImageViewer not recognising gestures after zoomed (#2261)
* [FIX] Zoomed in images must react to gestures
* AnimatedFastImage -> AnimatedImage
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android stack animation throwing illegal node ID (#2260)
* [FIX] Navigation object undefined when tapping sidebar's user header on tablet (#2259)
* [FIX] Action sheet cutting emojis on the header (#2263)
* [FIX] Action sheet cutting emojis on the header
* fix tablet case
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Mime type check crashing the app (#2264)
* [FIX] Notification preferences update crashing the app (#2262)
* [FIX] Create discussion not working from MessageActions (#2265)
* [FIX] getSettings not catching errors (#2271)
* [REGRESSION] Jitsi Call doesn't send message link (#2277)
* [FIX] Messages hidden behind MessageBox (#2281)
* fix: package.json & yarn.lock to reduce vulnerabilities (#2275)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-JPEGJS-570039
- https://snyk.io/vuln/SNYK-JS-LODASH-567746
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing german strings (#2278)
* cleaned mixed usage of "du" and "Sie"
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] CircleCI Upgrades (#2269)
* Upgrade nvm
* Upgrade XCode
* Use nvm's default installed version of node (LTS)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Sign in with Apple (#2282)
* Add expo-apple-authentication
* Button
* Create new provisioning profiles
* Login with Apple
* Change provisioning profile
* Button color based on theme
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] MessageBox not being shown on ShareView when Preview is a video (#2283)
* Wrap video preview with ScrollView so Messagebox is shown properly
* Fix border color
* [TESTS] Test in docker (#2290)
* Add docker env with orchestration
* Update detox, update mocha config format
* One simulator at a time - mocha won't run parallel
* Docker runner, with test changes to match RC data
* Better error trapping in infrastructure control script
* Swap user provisioning from Mongo to RC API to work against existing servers
* Add docker to e2e readme
* Stop using example.com for emails
* Default detox to the tests directory
* Add working configs for both run scenarios
* Add some optional forcing of data.js version for Docker
* [CHORE] Consistent Rocket.Chat Branding (#2293)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.10.0 (#2305)
* [FIX] Room Info actions doesn't check permissions/settings enabled (#2292)
* [FIX] Show Call Button only when Jitsi Enabled (RoomInfoView)
* [FIX] Show user info
* [FIX] Show message button only if it's possible
* [FIX] Create direct only when needed
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Read receipts on tablet (#2297)
* fixes not working read receipts on tablet (#2295)
* fixing last commit it to make it work on both tablet and phone
* fix missing close button on tablet's modal view
* Update app/views/ReadReceiptView/index.js
* remove unnecessary param
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Clear image cache when clear cache (#2300)
* [IMPROVEMENT] Clear image cache when clear cache
* use fork instead
* react-native-fast-image -> @rocket.chat/react-native-fast-image
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] In-app notification tap when deep in the stack not redirecting to the room (#2302)
* [FIX] Markdown preview causes app stuck (#2303)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update commonmark libs (#2306)
* [CHORE] Update commonmark fork and relateds
* [CHORE] Update commonmark.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump lodash from 4.17.16 to 4.17.19 (#2310)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.16 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.16...4.17.19)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] MessagesView duplicating content (#2307)
* Fix Pagination duplicacy
* Fix MessageView Duplicate Content
* [FIX] Return fetch func
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Update dependencies (#2301)
* Update RN to 0.63.0-rc.1
* Updating
* Fix keyboard
* Fix native stuff on Messagebox
* Update to RN 0.63.1
* Update pods
* Update patches
* Update minors
* Majors
* Remove base-64 in favour of js-base64
* others
* Pods
* Flipper
* Yarn
* Fix setInput
* [IMPROVEMENT] Native sort and limit queries (#2249)
* Update WatermelonDB to 0.18.0
* Low onEndReachedThreshold
* Query experiment
* QUERY_SIZE
* Query or fetch data
* Reorder class functions
* Reset variables
* Hide system messages
* Change this.count behaviour
* Starting on RoomsListView
* unsubscribeQuery
* onEndReached
* Separate queries
* Reusable where clause
* Refactoring
* Refactor RoomItem to accept item as prop
* Comment RoomItem tests just so jest passes
* Fix alert and status
* onPress
* Unnecessary diff
* react-fast-compare
* Native limit on ShareListView
* Tweak item description
* Lint
* Fix on foreground crash
* Suggested changes
* [FIX] Style not being applied on RoomsListView header subtitle (#2319)
* [IMPROVEMENT] Improve our PR Template (#1893)
* [IMPROVEMENT] Improve our PR Template
* Few changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Revert "[CHORE] Update commonmark.js " (#2331)
* [TESTS] Idempotence for e2e tests (#2308)
* Idempotence for Assorted
* Idempotence for Onboarding
* Idempotence for Rooms
* Remove redundant expects
* Fixes and improvements
* Remove unneeded sleeps
* Make stable following merge
* Try solving early taps without long sleep
Try solving early taps without long sleep (cont)
Temporary CircleCI hack for quicker testing
Add screenshots to CircleCI for failed tests
Try solving early taps without long sleep (cont. 2)
Revert "Temporary CircleCI hack for quicker testing"
This reverts commit 4abef3a5827910c05b12ac8b8380275b60e8af4f.
* Fix flaky test with a fluent wait on the tap
* Add some new sleeps to workaround #2324
* Add test artifacts to gitignore
* More longpress for dodgy taps, wait for pin response
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from Onboarding, NewServer, Login and Register screens (#2169)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* Resolve requests to improve the importing logs and events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Keyboard not focusing on TwoFactor component (#2314)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] TwoFactor component styling (#2328)
* Improve 2fa visual hierarchy
* Show 2fa keyboard by scheduling focus method after all interactions
* Remove unrelated styling improvements
* Improve 2fa component title hierarchy
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Admin panel not logging in automatically (#2330)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump codecov from 3.6.5 to 3.7.1 (#2323)
Bumps [codecov](https://github.com/codecov/codecov-node) from 3.6.5 to 3.7.1.
- [Release notes](https://github.com/codecov/codecov-node/releases)
- [Commits](https://github.com/codecov/codecov-node/compare/v3.6.5...v3.7.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Skip waiting for build processing on TestFlight upload (#2320)
* [CHORE] Update react-native-firebase (#2336)
* Remove firebase
* Install firebase/app
* Install analytics
* Crashlytics
* Android
* Fix mocks
* Edit scheme to Debug build configuration
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [REGRESSION] Invite links stopped working after #2154 (#2338)
* [REGRESSION] Invite links stopped working after #2154
* Clear invite links token when close NewServerView
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [TESTS] Fix some simple text (#2332)
* Clearer infrastructure wait message
* Use a generic mailbox rather than spamming Diego
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] i18n being called outside render (#2334)
* Fix I18n usage in ThemeView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix I18n usage in NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix some I18n wrong uses
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MessagesView title not working (#2294)
* Set title in header of room actions view items
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unneeded spaces
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Set header title on constructor
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove unused navigation options
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [TESTS] Stabilise Room Actions test (#2333)
* Stabilise Room Actions test
* Fix Create Room test
* Be more tolerant of slow starting apps in CI
* Be more tolerant of slow running apps in CI
* Switch visibility checks ti stabilise Room Create test in CI
* Move slow simulator readiness waiting to initial navigateToX methods rather than repeatedly in tests without description of purpose
* [CHORE] Update icon names (#2318)
* [CHORE] Move Detox to Github Actions (#2340)
* Initial workflow for iOS detox tests
* Increase timeout
* Parallelise tests and optimise when to build
* Refine GH Actions logic
* Improve Detox App caching
* Upload failed test artifacts
* Rate limiting aware data setup
* Remove detox tests from Circle CI
* Revert "Rate limiting aware data setup"
This reverts commit d115604270f719de775018b9b06e89f2bfdc2dc7.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Push notification data privacy (#2213)
* [WIP] Notification Service
* [WIP] Android push notification privacy
* [WIP] Retry request when it fails (iOS)
* [WIP] Override notification bundle
* [CHORE] Remove unnecessary import
* [WIP] Check notification Type (iOS)
* [WIP] Change to notification endpoint
* eof
* fix unwrap conditional value
* turn run request synchronous
* fix bundle info
* eof
* remove extra tab
* undo unnecessary change
* remove not working code for a while
* fix notification title
* change endpoint and received/sent data
* message-id-only working properly on android
* notification privacy working on ios
* invalidate circleCI yarn cache
* Fix provisioning profiles
* fix notification service version
* fix unwrap nil
* compatibility older servers android
* show received notification when cant fetch content from server
* undo some android changes
* prevent group & reply fallback notifications
* dont show more than one fallback notification by server
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Apply new mention colors (#2351)
* New mention colors
* Increase letterSpacing for mentions
* Refactor
* UnreadBadge
* Add migration
* [FIX] Missing icons (#2353)
* [FIX] Long press gestures not working properly on Android (#2354)
* [FIX] In-app notification showing while in a Jitsi call (#2345)
* Hide in app notification when focused on JitsiMeetView
* Hide notifications from different rooms
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Only run Flipper in debug via MainApplication is debug (#2347)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* [CHORE] Update Flipper to 0.51.0 (#2356)
* Only run Flipper in debug via MainApplication is debug
* ReactNativeFlipper package rename + gradle bump
* Update Flipper to latest 0.51 for Android
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Log events from RoomsList, SideDrawer and Profile (#2190)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Add missing keys to push get payload (#2358)
* [IMPROVEMENT] Add deep link to Jitsi calls (#2223)
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App hanging on splash screen when deep link params are wrong (#2359)
* Add rule when there's no host on the deep link params
* Add fallbackNavigation()
* Fix insecure hosts
* [FIX] More missing icons (#2360)
* [NEW] Log events from Room, Settings and Edit status (#2206)
* Create method to track user event to isolate the logic to improve future refactoring
* Track Onboarding view
* Track NewServer view
* Refactor track method due to firebase already send the current screen
* Track default login and all the oAuth options
* Track default sign up in RegisterView
* Change trackUserEvent signature and update all the files
* Track the remaining login services
* track add server, change server and search
* Track SidebarView and refactor to use react-navigation
* Track profile events and handle exceptions
* Track create channel flux
* Track send message to user via NewMessageView
* Track create direct message flux
* Handle failure of create channel and group in the saga
* Track create discussion flux
* Track navigate to directory and its actions
* Track read, favorite and hide a channel, handling its errors
* Track all channels sorting and grouping
* Resolve requests to improve the importing logs and events
* Remove unused events file
* Remove unused events file
* log proposed Room events
* Log proposed Message actions events
* Log EditStatus proposed events
* Log Settings proposed events
* Leave a bugsnag breadcrumb when logging an event
* Move all logEvent to the top of code block and log remaining fail events
* Move all the non-logic-dependent logEvent to the top of code block
* Move all non-logic and non-data dependent logEvent to the top of code block
* Improve the logging of sidebar events
* Improve events from onboarding and newserver
* Improve events from login and register view, and log enter with apple
* Improve NewMessageView events
* Improve CreateChannel events
* Improve CreateDiscussion and SelectedUsers create group events
* Improve RoomsList events and log trivial events
* Improve ProfileView events
* Remove single line function body for the sidebarNavigate
* Improve SettingsView events
* Log more events from ScreenLockConfigView
* Navigate to Status and AdminPanel View using the defined sidebarNavigate method
* Improve StatusView events
* Improve RoomView events
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Vertically centralize RoomItem when `Store_Last_Message` is disabled (#2363)
* Split RoomItem into container and component
* Refactor RoomItem
* Fix wrong status
* Tests
* Wrapper
* [NEW] Omnichannel inquiry queue (#2352)
* [WIP] Omnichannel queue
* Request inquiry when login
* Show take inquiry queued room
* Queue List as a Screen
* Poc using unread badge
* Prevent navigation to empty list
* Remove chat from queue when taked
* Fix header status on omnichannel preview room
* Fix room actions view to preview queued chat
* Use isOmnichannelPreview and dont show actions when is preview
* Filter queue chats taken by other people
* Fix room info to omnichannel preview room
* Handle show Queue
* Reset inquiry store when change server
* Improve queue logic
* Disable swipe on RoomItem when is a Queue Item
* Add unreadBadge style
* Move unread badge to presentation folder
* Cleanup inquiry reducers
* Move take saga to rocketchat function
* Remove comments
* Add relevant comments
* Subscribe to public stream if is livechat manager or doesnt have departments
* Add pt-br and improve queue empty message
* Fix take when dont have view-livechat-manager permission
* Add missing events
* Create selector for inquiry queue
* Minor fixes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Wrap logEvent in a try/catch (#2361)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Minor i18n issues (#2335)
* Add new translations to ptBr
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix update language in headers
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use parsed EJSON info on load notification (#2370)
* [NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size
* Log RA JitsiMeet events and join / terminate
* Log more RoomView events
* Log slash commands and handle fail
* Log RoomActions events
* Change from GO_TO to just GO
* Log RoomInfoEdit events
* Log InviteUsers and InviteUsersEdit events
* Log AutoTranslate events
* Log NotificationPreferences events
* Log remaining routes from RoomActions
* Log RoomAction toggle block user
* Fix command event
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] WorkspaceView not looking for the correct image path (#2376)
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
* [FIX] Android targeting wrong SDK version (#2375)
* [FIX] Mentions crashing without username (#2374)
* [FIX] Missing delete icon on MessageErrorActions (#2373)
* [FIX] Quote not working on Group DM (#2372)
* [DOCS] Add Whitelabel (#2379)
* Update readme (#2381)
* Update README.md (#2378)
* Update README.md
* Update README.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [DOCS] Refactor Readme (#2382)
* Refactoring
* Detail docs
* Contributing
* Update CONTRIBUTING.md
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2388)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [CHORE] Improve ISSUE_TEMPLATE.md (#2390)
* Bump version to 4.11.0 (#2392)
* [i18n] Update fr.js (#2380)
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
* Update fr.js
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Add to internal lane instead of alpha (#2400)
* [CHORE] Remove Google Services files from repo (#2405)
* Android
* iOS
* [FIX] Fix broken StatusView on tablet (#2407)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [FIX] REST for method calls not raising errors (#2408)
* [FIX] REST for Method calls not raising erorrs
* Remove unnecessary lint disable
* [NEW] Encrypt user credentials and preferences (#2247)
* install react-native-mmkv-storage
* wip ios migration
* change all js rn-user-defaults -> react-native-mmkv-storage
* remove all rn-user-defaults native references (iOS)
* android migration from rn-user-defaults to react-native-mmkv-storage
* ios app group accessible mmkv
* handle get errors
* remove access of credentials from legacy native apps
* remove data of user defaults
* remove no longer necessary import
* js mmkv encryption
* run migration only once
* reply from notification android
* fix app group key access at native level ios
* encrypt user credentials using a specific key
* ios encrypt with random key
* use a random key at the first encryption
* encrypt migrated data on js land
* remove unused function
* reply notifications ios should be working
* use fix instanceID
* android ejson retrieve encrypted data
* remove encryption migrated data for a while
* encryption working between app and share extension
* fix patch react-native-notifications
* ssl pinning working using mmkv encrypted data
* improve react-native-notifications
* run encrypt migration data only once
* fix build
* fix patches magic string
* fix mmkv id
* mmkv -> userPreferences
* fix instance id on android migration
* cast our oldest sharedPreferences string into an object
* revert log remove
* create currentServer Rocket.Chat key
* wrap mmkv api class
* change the get logic
* move userPreferences to lib
* move encrypt migrated data to userPreferences class
* check if the new object is new before insert
* invalidate ci yarn cache
* fix sort migration from android shared preferences
* fix splashscreen forever
* invalidate yarn cache
* invalidate yarn cache
* fix patch
* Minor change
* fix android notifications looking for wrong mmkv instance
* Fix some issues on iOS mmkv native access
* Remove unnecessary code
* Fix notification reply and ssl pinning
* WIP NotificationService use MMKV credentials
* Add KeychainGroup
* Notification idOnly get credentials from mmkv
* Some fixes
* Invalidate yarn cache
* Pods
* Use MMKVAppExtension on NotificationService
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Use font icons on login services (#2412)
* Replace font
* Use CustomIcon
* Remove native assets
* [FIX] SharedPreferences data migration (#2413)
* [IMPROVEMENT] Move directory to header (#2414)
* [FIX] Android crashing on receive a notification (#2415)
* [NEW] User notification preferences (#2403)
* Button to preferences view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Create screen to preferences and listItem to notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Refactoring NotificationPreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* List notification preferences
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding translations to labels
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* SetUserPreferences api call
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving new user preference in API
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Add in-app notification test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix in app mentions preference
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Improve object in testInAppNotification
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing improper options for NotificationpreferencesView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding API version
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use redux in UserNotificationPrefView
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Remove in app test
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Use components from another view
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing verification for testing in-app notifications
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Move to ProfileView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Verify Enterprise status on Omnichannel (#2399)
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
* [FIX] Change some icons (#2419)
* [FIX] User Preferences (#2418)
* [FIX] User Preferences
* PreferencesView -> UserPreferencesView
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Customize Sign in with Apple button (#2420)
* [Snyk] Security upgrade lodash from 4.17.19 to 4.17.20 (#2416)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-590103
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Add to F-Droid (#2171)
* create play and foss build
* update package.json to generate each build
* check1
* requested changes
* initial commit
* Update config.yml
* minor changes
* remove bugsnag from foss build
* remove bugsnag tasks from foss job
* fix stuck screen
* fixes
* update
* fix lint
* finalise :rocket:
* requested changes
* share app for fdroid
* update
* use negation for builds
* requested change
* update share app
* fix issues due to latest sync
* add extra line
* fix lint
* update
* update
* fix bugsnag issue
* Update config.yml
* Fix store url
* Foss release instead of debug
* Add hold for foss
* Fix build
* requested changes
* update name and icons
* update
* fix
* Revert "Bump version to 4.11.0 (#2392)"
This reverts commit ea287980d96b181b90b8db35dfa77f600d12d517.
* finalise
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Commit pods after #2171 (#2424)
* [IMPROVEMENT] Add subscription and room events on the same batch queue (#2423)
* [IMPROVEMENT] Add subscription and room events on the same batch queue
* Send both params
* Unused var
* [IMPROVEMENT] Show "Chats in Progress" group (#2425)
* [NEW] Logout from other logged in locations (#2386)
* Logout from other logged in locations
* Add UI feedback for the request result
* Refactor request to use the proper REST API
* Change backgroundColor
* I18n
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] App can't reopening a room in some cases (#2429)
* [FIX] Logout from custom oauth (#2377)
* New field in table of users
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving when the user logged in with email and password
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving login method info
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Ask for the user to clear cookies
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Removing loginMethod from redux and add I18n
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using async/await instead of then/catch
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Pods
* Added dismissText on showConfirmationAlert
* Fix iOS
* Rename function
* I18n tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong date and time shown in file section (#2409)
* Adding missing prop to item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Resolving the missing date in the files section in a more elegant way
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Using ts attribute always inside of an item object
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Verify useRealName setting on files screen (#2427)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Apply theme on Directory description (#2428)
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Wrong merge resolution after #2171 (#2431)
* [FIX] Upload to internal looking for the wrong path after #2171 (#2432)
* [FIX] Detox tests (#2433)
* Spotlight issues
* Fix room tests
* Fix roomactions tests
* [FIX] Crashlytics reportError not working after #2171 (#2436)
* [FIX] Logout from custom oauth when using password (#2435)
* [FIX] Logout from custom oauth when using password
* Remove an useless const
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Move toggle and inquiry to Enterprise Edition license (#2426)
* [IMPROVEMENT] Move toggle and inquiry to Enterprise
* Move inquiry stream to ee
* Emit inquiry subscribe
* imports to ee last
* Add readme to ee
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [CHORE] App Group path as a iOS constant (#2439)
* [FIX] Chrome debugging
* Remove rn-fetch-blob
* [CHORE] Use Rocket.Chat JS SDK's official repo (#2440)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Disable HTTP for production on Android (#2357)
* Only enable HTTP and user CAs on debug builds and
* Allow User CAs in prod
* Add config on debug
* Add lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption (#2394)
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update run-ios and run-android scripts (#2450)
* [IMPROVEMENT] Show errors on server enter (#2449)
* Catching errors
* [IMPROVEMENT] Show errors on server enter
* "Not rc server" instead of "invalid or insecure url" msg
* [NEW] Show server history (#2421)
* Add dropdown
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Adding new table to serverSchema
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Saving if not exists
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* list of visited servers finished
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Fix lint
Signed-off-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* Rename ServerLinks to ServersHistory
* Refactor
* Save username
* Sort servers desc
* ServerInput
* Item
* Refactor
* Layout tweaks
* Layout
* query by text
* Small refactor
* Redirecting to login
* Save username for oauth
* Fix keyboard persist
* Add tests
* Unnecessary yield
* Stop rendering FlatList logic when there's no servers on history
* Dismiss keyboard and autocomplete when tapped outside server TextInput
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Toggle analytics events (#2422)
* Create flow to toggle analytics events on memory
* Persist toggle analytics events
* Update crash report to contemplate analytics events
* Minor tweaks
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Local database searches using non-latin characters (#2462)
* [FIX] Local database searches using non-latin characters
* Add tests
* [FIX] Read receipt crashing in some cases (#2464)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting (#2459)
* [IMPROVEMENT] Add "Allow_Save_Media_to_Gallery" setting
* Default true for old servers
* [FIX] Jitsi breaking changes (#2468)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update WatermelonDB to 0.19.0 (#2469)
* [FIX] Jitsi breaking changes
* Update yarn cache
* Update watermelon to 0.19
* [FIX] SanitizeLikeString util crashes for empty strings (#2471)
* [i18n] Add Traditional Chinese (zh_TW) (#2465)
* I18n: Add Traditional Chinese language file(zh_TW)
* Minor fixes
* I18n: Add missing translation and fix some weird words
* fix escape char
* Fix minor issues
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [I18n] Improve Simplified Chinese (zh_CN) (#2466)
* I18n: Improve Simplified Chinese(zh_CN) language file
* I18n: Add missing translation
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Simplify i18n files (#2472)
* [FIX] Remove assets from share extension on iOS (#2473)
* [CHORE] Change database location to Experimental Apps (#2483)
* change database location of experimental apps
* fix migration from older versions
* [FIX] WatermelonDB caching Date as String (#2484)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] E2E Encryption push (Android) (#2481)
* poc push encryption android
* eof
* format code
* react-native-simple-crypto update
* prevent find sub twice
* remove storage and use ejson storage
* invalidate yarn cache
* Bump crypto and fix db path
* Fix google-services path
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Language set by web client (#2488)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (zh-TW, zh-CN) (#2486)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing italian strings (#2487)
fix some existing ones too
* [NEW] E2E Encryption push (iOS) (#2463)
* link pods to notification service
* push encryption poc
* decrypt room key poc
* read user key from mmkv and cast into a pkcs
* push decrypt poc (iOS)
* expose needed watermelon methods
* watermelon -> database
* indent & simple-crypto update
* string extensions
* storage
* toBase64 -> toData
* remove a forced unwrap
* remove unused import
* database driver
* improvement
* folder structure & watermelon bridge
* more improvement stuff
* watermelon -> database
* reuse database instance
* improvement
* database fix: bypass watermelon cache
* some code improvements
* encryption instances
* start api stuff
* network layer
* improve notification service
* improve folder structure
* watermelon patch
* retry fetch logic
* rocketchat class
* fix try to decrypt without a roomKey
* fallback to original content that is translated
* some fixes to rocketchat logic
* merge develop
* remove unnecessary extension
* [CHORE] Improve reply notification code (iOS)
* undo sign changes
* remove mocked value
* import direct from library
* send message request
* reply notification with encrypted message working properly
* revert apple sign
* fix api onerror
* trick to display sender name on group notifications
* revert data.host change
* fix some multithread issues
* use sendername sent by server
* small improvement
* Bump crypto lib
* Update ios/NotificationService/NotificationService.swift
* add experimental string
* remove trailing slash
* remove trailing slash on reply
* fix decrypt messages
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] HTTP Basic Auth (#2490)
* [FIX] Logout when install fresh Official and Experimental iOS app (#2493)
* [FIX] Show images in iOS 14 (#2494)
* [DOCS] Add Reactotron (#2498)
* Update about the inspection tool for our app.
Information about the Reactotron tool was missing in the contribution file.
* Update CONTRIBUTING.md
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] SSL Pinning stopped working after #2449 (#2510)
* [CHORE] Reset yarn cache (#2512)
* [FIX] Fastlane iOS (#2513)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules (#2530)
* [IMPROVEMENT] Add F-Droid modules as AdditionalModules
* Fix missing import
* [CHORE] Use App Store Connect API Key (#2549)
* [CHORE] Use App Store Connect API Key
* Update bundle
* rollback keychain
* Remove keychain
* Keychain is actually needed
* Update gitignore
* [FIX] Failing iOS build on fork PR (#2558)
* Fix fastlane build for a fork PR
* Change the iOS fastlane command to build_fork
* [FIX] Avatar cache invalidation (#2311)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Channel avatars (#2504)
* [WIP] Avatar cache invalidation
* [WIP] Avatar container
* [IMPROVEMENT] Avatar container
* [CHORE] Improve code
* Allow static image on Avatar
* Fix avatar changing while change username (#1583)
Co-authored-by: Prateek93a <prateek93a@gmail.com>
* Add default props to properly update on Sidebar and ProfileView
* Fix subscribing on the wrong moment
* Storyshots update
* RoomItem using Avatar Component
* use iife to unsubscribe from user
* Use component on avatar container
* RoomItem as a React.Component
* Move servers models to servers folder
* Avatar -> AvatarContainer
* Users indexed fields
* Initialize author and check if u is present
* Not was found -> User not found (turn comments more relevant)
* RoomItemInner -> Wrapper
* Revert Avatar Touchable logic
* Revert responsability of LeftButton on Tablet Mode
* Prevent setState on constructor
* Run avatarURL only when its not static
* Add streams RC Version
* Move entire add user logic to result.success
* Reorder init on RoomItem
* onPress as a class function
* Fix roomItem using same username
* Add avatar Stories
* Fix pick an image from gallery on ProfileView
* Format Avatar URL to use RoomId.
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* edit room avatar
* invalidate cache of room images
* reinit avatar if something change
* read avatar cache on search
* room avatar changed system message
* add avatar by rid test
* update snapshot
* etag cache on select channel
* reset room avatar
* increase caching to have a better image quality
* fix lgtm warn
* invalidate ci cache
* get avatar etag on select users of create discussion
* invalidate ci cache
* Fix migration
* Fix sidebar avatar not updating
* Remove outdated comment
* Tests
Co-authored-by: Prateek93a <prateek93a@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Ezequiel De Oliveira <ezequiel1de1oliveira@gmail.com>
* [IMPROVEMENT] List Component (#2506)
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* Address review comments
* Fix vertical scroll
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] App always sends auth for Avatar requests (#2517)
* [FIX] Sending auth for Avatar requests when not necessary
* fix storybook
* Fix ShareListView not updating avatars
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] iOS uploads always cropping as squares (#2516)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Mentions layout without background (#2559)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* [IMPROVEMENT] Support badge number on header buttons (#2566)
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Refactor
* Update tests
* Lint
* [NEW] Threads (#2567)
* [IMPROVEMENT] Mentions layout without background
* Fix RoomItem
* Fix tests
* Smaller messagebox
* Messagebox colors tweak
* Beginning header buttons refactor
* Add HeaderButtons
* item with title
* Refactor
* Remove lib
* Refactor
* Update snapshot
* Send to channel on messagebox
* Add tshow
* Add showMessageInMainThread to login.user reducer
* Filter threads on main channel based on user setting
* Send tshow
* Add tunread
* Move unread colors logic away from UnreadBadge component so it can be used on other components
* Export UnreadBadge on index
* Add empty test
* Refactor
* Update tests
* Lint
* Thread unread user and group on RoomItem
* Thread badge working
* Started ThreadMessagesView.Item
* Fix separator
* Reactivity working
* Lint
* custom emojis aren't necessary
* Basic filter layout
* Filtering layout
* Refactor
* apply filter
* DropdownItemHeader
* default all
* few fixes
* No data found
* Fixes list performance issues
* Use locale on date formats
* Fixed minor styles
* Thread badge
* Refactor getBadgeColor
* Fix send to channel background color
* starting search threads
* Fix lint and tests
* Bump to 4.12.0 just for testing :)
* Search input layout
* query
* starting threads header
* fix unnecessary tlm on tmid messages
* Fix thread header
* lint
* Fix thread header on ShareView
* Add e2e tests
* Fix subscriptions sort
* Update stories and minor fixes
* Fix button sizes on Messagebox
* Remove comment
* Unnecessary conditional
* Add showMessageInMainThread to user collection
* Fix thread header
* Fix thread messages not working on tablet
* Reset Messagebox.tshow after sending a message
* Allow to send to channel when replying to a thread from main channel
* Unnecessary theme prop
* Address comments
* Remove re-render
* Fix scroll indicator bug
* Fix style
* Minor i18n fix
* Fix dropdown height
* I18n ptbr
* I18n
* [IMPROVEMENT] Android push notification as a heads-up notification (#2507)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVEMENT] Add `Change Encryption Password` and `Reset E2E Key` (#2542)
* init
* Basic tests passing
* Add SecurityPrivacyView
* List.Item
* section
* Start removing theme as prop
* Remove StatusBar theme prop
* SafeAreaView theme prop
* Minor fixes
* List.Container
* Add translateTitle and translateSubtitle props
* Storybook
* Show action indicator
* Header
* Info
* Theme stories
* FlatList
* DisplayName
* Fix settings
* FlatList tweaks
* ThemeView
* Screen Lock Config
* DefaultBrowserView
* PickerView and User Prefs
* Notification Prefs
* StatusView
* Auto Translate
* InviteUsersEdit
* Visitor
* Minor fixes
* Remove Separator
* Remove iteminfo
* Font scale
* Legal
* Jitsi and e2e
* Block
* search, star, etc
* auto translate and notifications
* RoomInfo
* Refactor RoomActions
* lint
* Remove DisclosureIndicator
* padding horizontal 12
* Detox
* Tests
* SecurityPrivacy
* E2E encryption sec view
* stash
* Reset own key
* Reset key
* Change password
* Hide content
* Small refactor
* Fix tests
* Tests passing
* Change test order
* add pt-br
* Address review comments
* tests
* Missing i18n ptbr
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [IMPROVEMENT] Branding update (#2580)
* iOS native icons
* Android native icons
* Foss native icons
* Experimental icon iOS
* Experimental
* Notification icon
* Splash screen
* Splash screen iOS
* Blue notification text
* Fix iOS Launch Screen Icon
* Experimental and foss
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update Xcode to 12.1.0 (#2592)
* [CHORE] Update Xcode to 12.1.0
* Remove alpha from Xcode App Store Icon
* [IMPROVEMENT] Auto search when text changes in directory textfield (#2547)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Rooms header overlapping right icons (#2503)
takes into account long names on small screen which led to overlapping title and right buttons on the header bar
* [IMPROVEMENT] Jitsi lean (#2534)
* 2.10.2
* update jitsi sdk
* use our own react-native-jitsi-meet
* use own android jitsi sdk
* remove jsc reference
* use self-builded ios sdk
* update react-native-jitsi-meet
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] German word fix (#2598)
Report in German means "The Report" not "to report". Therefor "Melden" ist better suited here.
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Improve Chinese translation (#2570)
* [FIX] App crashing when notification is received/replied (Android) (#2602)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Update react native CLI to support white labeling with XCode 12 (#2560)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2571)
* adding missing German strings
* resolving conflict
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0) (#2603)
* [REGRESSION] Avatars doesn't show up on older servers (< 3.6.0)
* fix: snapshots tests failing
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Missing locales in moment helper (#2562)
* [i18n] Add missing Russian strings (#2555)
* Added waiting for network string translate
* [i18n] Add missing russian strings
* Some E2E strings
* [i18n] Add missing russian strings
* Some grammatical changes and translate optimizations
* Add english strings
* Final translate
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] 'Send to channel' when replying as a quote (#2606)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Android notification on Dark Theme using Official main color (#2604)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Storybook not able to import Avatar (#2607)
* [FIX] Storybook not able to import Avatar
* Fix lint
* Mock Date.now
* Fix RU translation
* isLegacy -> serverVersion
* Remove change avatar from room info edit for servers below 3.6
* Mock for storyshots only
* lint
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [BUG] App isn't showing message for PDF/file uploads (#2584)
* Fixed the issue #2531
In app/containers/message/Reply.js added a View Contaier around the
Attachment Touchable and Added a Markdown attribute with msg set to
description of attachment to display the message if any.
* Added the condition to check if File Description Exists
Added an if statement to check if file description exists and if yes
then add a markdown with value msg equal to the description.
Also tested using 'yarn test -u' to add/update the tests.
* Made the requested Changes
Removed the condition to check for attachment description.
Added the `markdown` inside the touchable and wrapped `attachmentContainer` and the `markdown` inside a `<>` component
* Added file not showing message issue code in this branch
* Fixed the mistake in return
* fix
* Add tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title positioning not changing according to the number of icons (#2608)
* [DOCS] Update Android Supported versions (#2611)
* [i18n] Improve Russian translation (#2609)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] User notification preferences throwing an error when select default Email option (#2615)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] MomentJS crashing on Spanish language (#2616)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] AllowBackup manifest attribute causing unexpected behaviour on login (#2617)
* [FIX] Search messages crashing when show a thread message (#2618)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] F-Droid build for store (#2557)
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* [FIX] F-Droid build for store
* Trying to make Override custom push notifications on play build only
* Use play sourceSets
* Change version code
* Fix react-native-config-reader
* Remove react-native-device-info Google dependencies / Use LIBRE_BUILD of react-native-jitsi-meet
* Invalidate CI Cache
* Set specific jitsi-meet-sdk
* Specify 2.10.0-libre
* jitsi-meet using an url based on play build
* update react-native-jitsi-meet
* react-native-device-info foss
* undo some unnecessary changes
* Fix notifications
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Merge beta into master (#2621)
* Sync develop on master (#275)
* Create LICENSE
* Sync master (#721)
* Merge 1.13.0 into Master (#936)
* fix last messages (#239)
* fix last messages
* Room actions (#231)
* Layout
* Empty starred list
* Favorite room
* Pinned messages
* fix last messages
* fix date on pinned messages
* fix package
* [NEW] OAuth (#241)
* Layout
* tmp
* test iscordova
* Webview redirecting
* Open and Close login actions
* Login services saved on redux
* OAuth Github
* Server regex fix
* OAuth modal style
* - Twitter login
- Remove services from redux
- Open login saga fix
* - Facebook login
- Fixed user agent
- Reactions fix
- Message url unique key fix
* Google login
* Email keyboard removed from messagebox
* - Login buttons refactored
- RoomList header
* Layout improvements
* Meteor login redirect_uri changed
* fix
* Random credentialToken state
* [NEW] Room actions: Mentioned messages and Room Members (#242)
* Mentioned messages
* Starred and pinned actions debounce
* Room members
* Open room on member touch
* [WIP] Improves (#245)
* hotfix for ios
* hotfix for ios
* Update config.yml
* Workaround for RN 0.54 on iOS (#246)
* Update iOS to RN 0.54 (#248)
* Update iOS to RN 0.54
* [WIP] Audio message functionality (#247)
* [NEW] Add module react-native-audio
* [WIP] Audio message basic UI
* [NEW] Record audio message
* Use cordova repository to get certificates
* Icon 1024
* [NEW] Room actions: block user, snippet messages, room files and leave room (#250)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* Reactotron working (#249)
* [NEW] Room info and Room info edit (#254)
* - Block user
- Load room members async
- fixed reactive change of room's read only flag
* Snippet messages
* - Room files
- Dismiss Video component on back button press
- Improvements on Image component
* Improvement on Video component
* Leave room
* Missing message types
* lint
* - Room info (read only)
- Missing message types
* Room info scroll
* - Tap on room header opens room info
- Layout tweaks
* - Room info edit
- iOS Toast fixed
* - Style not implemented actions as disabled
* Edit room permission
* - Save all room settings in a single call
- Implemented roomType and readOnly
* - Allow reacting when room is read only
* Message type added: room_changed_privacy
* Erase room
* Created TextInput and SwitchContainer components for reuse and readability
* - hasPermission method
* - Archive/Unarchive room
- Set Join Code
* Twitter keyboard type on iOS
* Archived room
* reactWhenReadOnly permission on message
* Active users refactored
* User roles
* - Subscribe to roles (in order to get role description info: e.g. 'core-team' to 'Rocket.Chat Team')
- Save roles to realm (for offline access)
- Save roles to redux (and get data from realm on app init)
* Lint
* code style
* password show/hide feature
* fix show/hide password
* password show/hide
* Crashlytics (#258)
* Fabric iOS
* Fabric configured on iOS and Android
* login tracked
* more logs
* fix reaction
* CI fix
* Bug fixes (#261)
* Layout fixes
* RoomsListView's SafeAreaView
* Unhandled promise rejection fix
* Prevent navigation from opening scenes twice
* Create channel fixes
* Create LICENSE
* Beta (#265)
* Fabric iOS
* Fabric configured on iOS and Android
* - react-native-fabric configured
- login tracked
* README updated
* Run scripts from README updated
* README scripts
* get rooms and messages by rest
* user status
* more improves
* more improves
* send pong on timeout
* fix some methods
* more tests
* rest messages
* Room actions (#266)
* Toggle notifications
* Search messages
* Invite users
* Mute/Unmute users in room
* rocket.cat messages
* Room topic layout fixed
* Starred messages loading onEndReached
* Room actions onEndReached
* Unnecessary login request
* Login loading
* Login services fixed
* User presence layout
* ïmproves on room actions view
* Removed unnecessary data from SelectedUsersView
* load few messages on open room, search message improve
* fix loading messages forever
* Removed state from search
* Custom message time format
* secureTextEntry layout
* Reduce android app size
* Roles subscription fix
* Public routes navigation
* fix reconnect
* - New login/register, login, register
* proguard
* Login flux
* App init/restore
* Android layout fixes
* Multiple meteor connection requests fixed
* Nested attachments
* Nested attachments
* fix check status
* New login layout (#269)
* Public routes navigation
* New login/register, login, register
* Multiple meteor connection requests fixed
* Nested attachments
* Button component
* TextInput android layout fixed
* Register fixed
* Thinner close modal button
* Requests /me after login only one time
* Static images moved
* fix reconnect
* fix ddp
* fix custom emoji
* New message layout (#273)
* Grouping messages
* Message layout
* Users typing animation
* Image attachment layout
* Fabric and image fix (#284)
* Fixed images not showing
* Keyboard libs updated
* Fabric fix and location removed (#286)
* Proguard disabled
* message with list + links fixed (#288)
* Better image cache component (#292)
* react-native-img-cache removed
* Improve list render
* Support <http://link/Text> inside markdown
* Deep linking (#291)
* deep linking
* Basic deep link working
* Deep link routing
* Multiple servers working
* Send user to the room
* Avatar initials and room type icon (#298)
* Deep linking fix and more (#294)
* Fix - Any https link was deep linking to RocketChat
* Keyboard dismiss after add new server
* Room info bug fix
* Opacity animation
* Navigation when adding server fixed
* Throttle for unnecessary render on receiving several messages
* Search inputs without autocorrect and autocapitalize
* Search messages fixed
* Messagebox unnecessary render and spotlight fixed
* react-native-keyboard-input updated
* Lint
* Tests updated
* Update all dependencies (#299)
* Update react-navigation to the latest version 🚀 (#293)
* fix(package): update react-navigation to version 2.0.0
* Code updated to support breaking changes of react-navigation
* Detox tests E2E (#283)
* RoomsListView re-render (#304)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Removed unnecessary re-renders on RoomsListView
* [NEW] Broadcast channels (#301)
* Broadcast channels
* e2e tests
* New markdown (#306)
Our current markdown is causing a lot of issues on Android devices, since it wraps everything inside a Text component.
On Android, Text doesn't support View as a child.
This PR adds react-native-markdown-renderer, that uses View as wrapper and may be better.
* Fixed audio recording issues (#310)
* Fix for "java.lang.IllegalArgumentException: unexpected url" (#313)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
User was able to add an invalid instance of Rocket.Chat by pressing submit button instead of "Connect" button.
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* I18n (#312)
* Unread and date separator layout improved (#319)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Unread and date separator layout
- [x] "Start of conversation"/"Loading messages" label
![screen shot 2018-05-30 at 18 10 43](https://user-images.githubusercontent.com/804994/40747867-0424964a-6435-11e8-9293-31cc43c110ab.png)
![screen shot 2018-05-30 at 18 09 05](https://user-images.githubusercontent.com/804994/40747868-04484784-6435-11e8-8c31-92e0776276f0.png)
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] iOS Universal links (#318)
* [NEW] Drawer (#322)
* [FIX] invalid user muted value
* Ddp fixes (#324)
* [NEW] User Profile (#323)
* Drawer layout
* Drawer changes
* Profile
* Profile avatar
* Set language
* Tests
* Custom fields
* Readme updated
* fix invalid user muted value
* Fix for "Cannot add a child that doesn't have a YogaNode to a parent without a measure function! (Trying to add a 'RCTVirtualText' to a 'RCTView')"
* Settings/Permissions improvements (#325)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle and targetSdkVersion (#328)
* Changed the way we read RocketChat settings since setting.type won't be returned from server anymore
* Permissions
* Unnecessary action sheet render
* Update gradle
* Switched testServer to use blob
* RoomsListHeader search fixed
* Runs loadMessagesForRoom only if room has at least 20 rows
* - Logout if user's token expired
- Removed update avatar logic
- Profile dialog border on android
* - Animations disabled
- CircleCI set
* Tests updated
* "eventType argument is required" fix
* Switch push notification lib (#346)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #342
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Allow x-instance-id and X-Instance-ID header (#354)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #137
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
Some server configurations may send x-instance-id header with different case.
* Image upload improvements (#368)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
- [x] Crop image
- [x] Type image description (like web)
- [x] Show upload progress
- [x] "Try again" in case of error
- [x] Cancel upload while in progress
- [x] [Android] Zoom on photos
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/42526934-a12da304-844d-11e8-8668-f3d69369726a.png)
![image](https://user-images.githubusercontent.com/804994/42527829-297945fe-8450-11e8-9f0e-9e668dd33043.png)
* [NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [FIX] Empty room name for livechat (#375)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #320
Closes #209
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Reply preview (#374)
* Updated to React Native 0.56
* Reply Preview
* [FIX] Close websocket (#379)
* Fixed a bug when closing websocket
* removeListener fixed
* [I18N] Russian translation (#381)
[I18N] Russian translation file
* [NEW] Icon (#383)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![image](https://user-images.githubusercontent.com/804994/43228416-d8af49d6-9037-11e8-8830-a1803932c7fd.png)
* [FIX] Android 8 notifications (#382)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #380
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Added CocoaPods to manage react-native-image-crop-picker (#373)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
react-native-image-crop-picker raised an error when uploading to TestFlight.
The lib highly recommends CocoaPods for production builds.
* Added single-server to readme (#390)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #386
Closes #295
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* Improve RoomsList render time (#384)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
- [x] Added FlatList.getItemLayout() to improve list render time
- [x] Some texts were breaking lines at sidebar
- [x] Removed onPress from links at RoomsListView
- [x] Added eslint rule to prevent unused styles
- [x] Fixed auto focus bug at CreateChannel and NewServer
- [x] Fix change server bug
- [x] Fixed a bug when resuming in ListServer
- [x] I18n fixed
- [x] Fixed a bug on actionsheet ref not being created
- [x] Reply wasn't showing on Android
- [x] Use Notification.Builder.setColor/getColor only after Android SDK 23
- [x] Listen to app state only when inside app
- [x] Switched register push token position in order to improve login performance
- [x] When deep link changes server, it doesn't refresh rooms list
- [x] Added SafeAreaView in all views to improve iPhone X experience
- [x] Subpath regex #388
* [NEW] Empty room background (#412)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #398
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-09-2018 11-35-32](https://user-images.githubusercontent.com/804994/43906080-cbfadf92-9bc8-11e8-9ac9-44f43d3af023.gif)
![aug-09-2018 11-35-16](https://user-images.githubusercontent.com/804994/43906082-cc19411c-9bc8-11e8-9892-c65c86951a91.gif)
![image](https://user-images.githubusercontent.com/804994/43911366-ad830cd0-9bd5-11e8-8913-6a7e87a2206c.png)
* Add roadmap (#406)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #45
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
* [NEW] Onboarding (#407)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #392
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-03-50](https://user-images.githubusercontent.com/804994/43799447-f62074dc-9a63-11e8-8aac-bf2c4c5a8a2b.gif)
![aug-07-2018 17-03-35](https://user-images.githubusercontent.com/804994/43799446-f5f84a70-9a63-11e8-8947-265113ae9bf4.gif)
![aug-07-2018 17-03-13](https://user-images.githubusercontent.com/804994/43799445-f5d70ee6-9a63-11e8-94a9-f49c7d69fbba.gif)
* [NEW] Updated Logo on Splash screen (#409)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->
@RocketChat/ReactNative
<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->
Closes #399
<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
![aug-07-2018 17-39-44](https://user-images.githubusercontent.com/804994/43801415-739a0cca-9a69-11e8-8bec-d65f751e6a28.gif)
![aug-07-2018 17-31-12](https://user-images.githubusercontent.com/804994/43801416-73d19bd6-9a69-11e8-90ac-bbc7ddeed938.gif)
* [FIX] Only single attachment rendered (#417)
* [NEW] Rooms list layout (#413)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* [NEW] Create channel layout (#420)
* RoomsListView layout
* Rooms list layout
* Sort component
* Header icons
* Default header colors
* Add server dropdown
* Close sort dropdown if server dropdown will open
* UserItem
* Room type icon
* Search working
* Tests updated
* Android layout
* Using realm queries instead of array iterates
* Animation duration
* Fixed render bug
* - NewMessageView
- backButtonTitle always empty
- SearchBox created
* New create channel layout
* Search refactored
* loginSuccess dismiss modal
* Tests working
* [FIX] Open unsupported videos on browser (#422)
* 1.1
* Sort/group rooms local only (#425)
* Update android api from ci
* Sort local only
* [FIX] Missing current server (#427)
* server.current removed
* Increased area of touch on header
* Hide search when sort dropdown is tapped
* default server icon url
* 1.1.1
* [NEW] Experimental Icon (#430)
* [NEW] Message layout (#426)
* message container/component
* Separator component
* Reply
* Url
* tests updated
* Minor changes
* Audio component
* Broadcast button
* Minor touches
* Reply preview
* Edited
* Minor bug fixes
* - Update roadmap
- Bump version to 1.2
* Onboarding styles fix
* [FIX] Drawer navigation won't refresh chats (#432)
* Avoid errors on Audio/Image/Video (#443)
* Bump version to 1.2.1 (#444)
* Stop supporting Android 4.4 and lower (#447)
* Several fixes for 1.2.1 (#448)
* Fix user.roles
* Better onLongPress handle on messages
* Indicator position
* Fix role undefined in system messages
* Add baseUrl in case of file attachments
* Join room fixed
* RoomView params
* Broadcast fixes
* Add server layout changes
* Use native images
* Subscribe to not joined channels
* Fix alerts without i18n
* Tests updated
* Bump version to 1.2.2 (#449)
* [NEW] Use community JSC for Android (#450)
* [NEW] Use community JSC for Android
* Quick fix on unread chats
* [NEW] Show app version (#454)
* [NEW] Portuguese translation (#452)
* [NEW] Portuguese translation
* Remove servers from sidebar
* Update dependencies (#431)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Use inline requires (#459)
* Update dependencies
* Lint and test
* Added react-native fork
* rn 57
* Lint and tests updated
* Update xcode on circleci
* Use legacy build system
* Update tests
* Inline requires
* Fix eslint and remove temp gradle
* Unnecessary renders
* Update isNotch and Readme
* Tests updated
* Bump version to 1.3.0 (#461)
* Better touch handling on rooms list (#462)
* Use react-native-gesture-handler at RoomItem
* Fixed info message author
* Edit message render improvement
* Fix ws to http replace
* Bump version to 1.3.1 (#463)
* Composer layout tweaked (#464)
* Composer layout tweaked
* Fix localization error
* Bump version to 1.3.2
* [FIX] Handle deleted messages (#466)
* [FIX] Handle deleted messages
* Fix rest error
* Fix some connection issues
* [FIX] Search rooms (#468)
* Bump version to 1.3.3 (#469)
* Connecting to DDP badge (#471)
* Display custom fields on user info (#476)
* Render custom fields on user info
* renderCustomFields fix
* Display custom fields in user info
* Fix lint error
* [FIX] DDP badge wasn't hiding on fast connections (#477)
* Use Rocket.Chat JS SDK (#481)
* JS SDK
* API working
* Multiple servers
* Bump version to 1.4.0 (#482)
* [FIX] 2FA and LDAP (#488)
* [FIX] Unread rooms group order (#487)
* Use grouping setting on temp messages (#486)
* [FIX] Delete room error (#485)
* Rename to Rocket.Chat Experimental (#483)
* Update dependencies (#484)
* Bump version to 1.4.0 (#482)
* test
* one more test
* Fix build
* Regression: Wait for unmount to delete database after logout (#489)
* Bump version to 1.4.1 (#490)
* Regression: Crash on Android search (#492)
* Bump version to 1.4.2 (#493)
* Update Rocket.Chat.js.SDK (#494)
* Bump version to v1.4.3 (#495)
* [FIX] OAuth (#496)
* Smaller header icons inside the room (#499)
* [FIX] Logout (#497)
* [FIX] Logout
* Removed realm instances on rooms list
* Bump version to 1.4.4 (#498)
* Update navigation library (#501)
* v2
* Working on Android 0.57.3
* Drawer working
* Removing v1 navigator
* - Splash screen
- Icons changed
* Deeplink
* Remove EventEmitter from CreateChannelView
* Android search
* Android notifications
* OAuth
* Fix search props
* Lint and tests fixed
* Fix android build
* Improvements on iPhone X* usage
* Fix detox
* Fix android build
* Room.f added to RoomView.shouldComponentUpdate
* Animations on RoomsListView and RoomView
* Fix topbar buttons on Android
* Bump version to 1.5.0 (#503)
* Check $FABRIC_KEY availability in CircleCI (#506)
* Check $FABRIC_KEY in CircleCI
* Remove config scripts
* Check $FABRIC_KEY availability in CircleCI for iOS (#507)
* [I18n] Add Simplified Chinese(zh-CN) locale (#505)
* [FIX] iOS pop gesture not working properly (#509)
* Check if lastMessage has an attachment and show "User sent an attachment" at RoomsList (#510)
* [FIX] Messages not being loaded properly (#513)
* Fetch avatar initials from server (#512)
* Fix iOS pop gesture and open sidemenu gesture (#511)
* Bump version to 1.5.1 (#516)
* [NEW] Room header layout (#521)
* Clear iOS notification on resume/open (#520)
* [FIX] Flashing avatars on Android after #512 (#519)
* [FIX] App connects to previous server instead of the recent added (#518)
* [FIX] Room view header crashes when destructuring reducer (#523)
* [FIX] Dismiss keyboard on room close (#530)
* [FIX] Composer composer's send icon slowness (#528)
* [WIP] New Authentication layout (#536)
New Authentication layout
* Regression: Resend messages with error (#532)
* DDP Connection badge animation changed (#533)
* [FIX] Upload buttons on Android (#541)
* Bump version to 1.6.0 (#543)
* I18n: Add missing translation of simplified Chinese (#539)
* Update dependencies (#544)
* AndroidManifest changes
* Regression: Deep linking stopped working after react-native-navigation update (#549)
* [FIX] Android stuck on splash screen after hardware back button is pressed (#550)
* [FIX] Android stuck on splash screen after hardware button is pressed
* Fix empty user at asyncstorage
* Remove unused subscribe
* [FIX] x-instance-id header prop is case insensitive (#551)
* Bump version to 1.6.1 (#553)
* [FIX] x-instance-id header prop is case insensitive
* Use Rest API calls (#558)
* Chats: Don't show group header if none of the filters is selected (#560)
* [CHORE] Update Xcode image version on CircleCI (#561)
* Bump version to 1.7.0 (#562)
* [FIX] Load messages on notification tap (#564)
* Use Rest API pt 2 (#568)
* Room files
* Pinned messages
* Starred messages
* Mentioned messages
* Search messages
* Bug fixes
* Profile
* Livechat
* Block/unblock user
* Erase room
* Archive room
* Remove unused method
* Bug fix
* [CHORE] Add hold step on CircleCI before TestFlight (#572)
* [FIX] GET /info to check if it's a valid server instead of x-instance-id (#573)
* Bump version to 1.7.1 (#574)
* Unnecessary re-renders removed (#570)
* shouldComponentUpdate
* Rooms list shouldcomponentupdate
* RoomView shouldComponentUpdate
* Messagebox and Message shouldComponentUpdate
* EmojiPicker shouldComponentUpdate
* RoomActions shouldComponentUpdate
* Room info shouldComponentUpdate
* Update RNN
* Use only one Flatlist if none group filter is selected
* Update fix
* shouldComponentUpdate
* Bug fixes
* ListView changes
* Bug fix
* render list bug fix
* Changes on public channels
* - RoomView saga leak removed
- Join room e2e tests added
* Rest versions
* Method call versions
* Min RocketChat version alert
* Update dependencies (#587)
* [FIX] Better message actions (#567)
* [FIX] Back button press on message actions (#592)
* Bump version to 1.8.0 (#595)
* [FIX] LDAP login (#596)
* Create class to manage navigation (#594)
* Add Navigation class
* Place Drawer.js logic inside of Navigation
* Load less views at startup
* [FIX] v1.8.0 (#599)
* Downgrade react-native-fast-image
* Update iOS permission usage descriptions
* [FIX] Delete upload item
* Update JS SDK version (#602)
* Add Icons class (#611)
Creates Icons class to manage when to load icons from native side or react-native-vector-icons.
It also fixes `react-native run-android` #517
* Updating room indicator (#609)
Shows "Updating..." when requesting rooms from Rest API.
* [FIX] Load avatar on servers that prevent unauthenticated avatar access (#604)
App would show an empty space on servers that require authentication on avatar access
* [FIX] 2FA login in a server with LDAP enabled (#612)
* [FIX] Start loop searching for rooms updates only when connection goes down and SDK has userId (#613)
* Allow to create empty channel (#615)
* [FIX] Reply title should break text (#616)
* Bump version to 1.9.0 (#617)
* [FIX] SDK issues (#621)
* Remove listeners from room
* Properly close connections on change server
* Minor layout change on connecting badge
* [CHORE] Add TestFlight invite and update Readme (#623)
* [FIX] npm -> yarn dependencies migration (#622)
* I18n: Add French (#629)
* [FIX] Remove rooms listener (#630)
* [CHORE] Update issue template (#638)
* I18n: Add German (#641)
* Bump version to 1.10.0 (#644)
* [FIX] Prevent mass is typing dispatchs (#651)
* [FIX] Handle database errors properly (#650)
* [FIX] Change actions labels (#654)
* [FIX] Room members filter (#655)
* [FIX] uploadProgress is not a function (#656)
* [FIX] Slow messagebox (#658)
* Remove drawer (#653)
* Remove drawer (layout needs to be changed in future releases, though)
* Don't navigate outside on logout if there's other logged server
* Update react-native-navigation
* Message button (#660)
* Remove touchable opacity when scrolling messages
* Tap on disable messages closes keyboard
* Unify vibration
* Vibrate only on Android
* [FIX] Fetch rooms date (#662)
* [FIX] Select emoji error (#666)
* Update Realm to 2.24 (#667)
* Update React Native to 0.58.6 (#668)
* [FIX] Fix some language issues in German language (#664)
* New icons (#643)
* New Icons
* Remove unused assets
* Change send icon
* Layout tweaks
* Refactor Status
* Styles changed
* User layout fix
* Separator layout changes
* Sidebar status layout fix
* Fix Message.onLongPress issue
* Fix code markdown
Closes https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/625
* Status lint
* Fix tests
* Navigation debounce
* RoomActions icons
* Space between components
* Group text
* Update tests
* [CHORE] Remove .debug suffix on Android (#681)
* [FIX] Fix null native Messagebox component object (#680)
* Fix null native Messagebox component object
* [iOS] Fix header alignment
* Remove unused files
* Switch to react-navigation (#687)
* Update readme (#714)
* Bump to 1.10.1 (#731)
* [FIX] Deep linking between multiple logged servers (#730)
* Fix handle invisible status (#692)
* I18n: Add Portuguese (Portugal) (#722)
* [FIX] Show ActivityIndicator in RoomMembersView (#686)
* Bump version to 1.11.0 (#761)
* Migrate from GCM to FCM (#760)
* [NEW] Scrollable room name feature (#756)
* [NEW] Scroll down floating button (#735)
* [CHORE] Added Storybook documentation (#757)
* Use FlatList in RoomView (#762)
* [FIX] iOS requiring location permission (#768)
* Room item layout (#771)
* [NEW] Draft message per room (#772)
* [FIX] Add Realm.safeAddListener (#785)
* [CHORE] Remove tvOS target (#779)
* [NEW] Discussions (#696)
* Bump version to 1.12.0 (#804)
* [NEW] Threads (#798)
* RoomsListView improvements (#819)
* [FIX] Giphy not showing (#810)
* [FIX] Apply emojify on empty texts (#824)
* Lock drawer when stack is not on root screen (#825)
* Room item layout (#835)
* [FIX] Threads (#838)
Closes #826
Closes #827
Closes #828
Closes #829
Closes #830
Closes #831
Closes #832
Closes #833
* [FIX] Smaller thread title (#846)
* [FIX] Smaller thread title
* Remove markdown notation from thread title
* On message press debounce
* Align vertical thread title
* [Regression] Search stopped working on Android after LastMessage refactor (#851)
* Load legal pages from web (#849)
* Update fetch permissions api (#850)
* Update custom emojis endpoint (#852)
* Update emoji endpoint
* Use React.memo on Markdown
* Support RC versions lower than 0.75.0
* Realm migration
* Fetch roles from rest api (#853)
* Fetch roles from rest api
* Fix RoomInfoView role get
* Remove roles from redux
* Bump version to 1.13 (#857)
* Active users improvements (#855)
* Remove connection badge (#862)
* Connecting indicator on RoomsListView header
* Connecting indicator on RoomView header
* Remove ConnectionBadge
* Show updating on RoomView load messages
* Update dependencies (#863)
* Minor updates
* Update jsc-android
* Update react-native-modal
* Minor updates
* Update react-native-fast-image
* Minor dev updates
* Few major updates
* Update react-native-keyboard-aware-scroll-view
* Update pods
* Update android-support
* Update tests
* Remove duplicated getRoleDescription function (#866)
* [FIX] Load local URL image (#871)
* [FIX] Toggle/follow thread icon (#867)
* Tweaks on sequential threads messages layout (#858)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Set initialNumToRender to 5
* [FIX] Check if room is mounted before setting state (#864)
* Tweaks on sequential threads messages
* Update tests
* Fix quote
* Prevent from deleting thread start message when positioned inside the thread
* Remove thread listener from RightButtons
* Fix error on thread start parse
* Stop parsing threads on render
* Check replied thread only if necessary
* Fix messages don't displaying
* Fix threads e2e
* RoomsListView.updateState slice
* Stop fetching hidden messages on threads
* Check if RoomView is mounted before rendering
* Refactor navigation events on RoomsListView
* Fix lint
* Fix listener
* [FIX] Typing not getting cleared after popping a room (#873)
* [CHORE] Remove e2e tests from CI (#875)
* [FIX] Remove listeners on RoomView header unmount (#874)
* [RELEASE] Merge beta into master (#1055)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [RELEASE] Merge beta into master (#1082)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [RELEASE] Merge beta into master (#1088)
* Bump version to 1.16.0 (#1014)
* [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982)
* :sparkles: Create user table
* :sparkles: Introduce user table
* :fire: Remove unused table
* :heavy_plus_sign: Add userdefaults to storage data
* :green_heart: Fix android build
* :sparkles: Get credentials from iOS native client
* :fire: Remove unused code
* :rewind: Revert sign xcode
* :bug: Fix first login-logout
* :art: Use constants to UserDefaults Keys
* :bug: Fix clear server-user-info on logout
* :bug: Fix filter null value
* :ambulance: Remove user object in logout
* :sparkles: Fix get servers from native-client
* :ambulance: Fix error on change server
* [FIX] Don't run UserDefaults credentials on Android (#1015)
* :bug: Fix native credentials (android)
* Fix migration loop
* [IMPROVEMENT] Hide frequently used emoji tab when empty (#792)
* [IMPROVEMENT] Bigger emoji in emoji only messages (#793)
* issue #725: bigger emoji in emoji only message
* issue-725/add storybook for Message/Emoji
* issue-725: update storybook/Message jest snapshot
* comment storybook import
* allow spaces and line breaks in emoji only message
* merge develop
* revert unnecessary spacing
* [FIX] Empty message if contains only a link (#787)
* Fix empty message if contains only a link
* :bug: Fix empty space
* [IMPROVEMENT] Refactor empty space regex on quote (#1017)
* :art: Improve regex to empty space on quote
* :art: Improve on regex to empty space on quote
* [NEW] Custom fields on signup (#1013)
* added custom feilds on registration
* added flag as leftIcon and removed lable
* added try and catch
* typo
* [CHORE] Renew provisioning profiles (#1020)
* [NEW] Auto-translate (#1012)
* Update realm
* View original and translate working
* Read AutoTranslate_Enabled setting
* RocketChat.canAutoTranslate()
* AutoTranslateView
* Save language
* Auto-translate switch
* Translate message
* [IMPROVEMENT] Use haptics rather than vibration (#1016)
* Install expo-haptics
* Use expo-haptics rather than RN's Vibration module
* [IMPROVEMENT] Use Rest API for file upload (#1005)
* removed rn-fetch-blob and use native XMLHttpRequest instead
* removed unnessary changes
* fix android bug
* fix android bug
* added tmid support
* fix bug
* fixed isssue with cacel model
* fix problems with audio
* done requested changes
* fix bug with android
* [CHORE] [CI] [TESTS] update detox to make ci pass (#1026)
* feat: update detox to 12.11.3 to make CI pass
* ci: comment all jobs but leave e2e-test job
* commit to rerun IC e2e-test job
* ci: uncomment all CI jobs
* [NEW] Room swipe actions: mark as read/unread, hide, fav (#976)
* added unread and fav feature
* changed the layout
* fix jest
* done requested changes
* added requested changes
* [FIX] Android build (#1027)
* [FIX] Android build
* CircleCI error
* [FIX] iOS share credentials build (#1028)
* [FIX] iOS share credentials build
* Use `hasMigration` as a string
* [CI] Restore cache on CI (#1029)
* feat: add fastlane save\restore cache config; comment not needed jobs;
* install fastlane using 'bundle install'
* install fastlane using 'sudo bundle install'
* uncomment ios build commands
* run set up google services in ios folder
* add working_directory: ios to ios-build steps
* remove 'cd ios' from Fastlane build step
* add save\restore cache for npm modules
* group save_cache steps
* cache fastlane in ios-testflight job
* uncomment previously commented jobs\steps
* fix: add missing colon
* use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }}
* add names for save\restore steps
* ci: add `default` step with `working_directory: ~/repo` to ios-build job
* return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}`
* fix: add missing curly braces
* save\restore cache in e2e-test job; remove {{arch}} from cache names
* add names to restore_cache steps in android-build job
* add names to save_cache steps in android-build job
* add names to all save\restore steps; change checksum package.json to yarn.lock
* change `npm` to `NPM` in steps naming
* remove {{ checksum circle ci }} from android-build job and fix naming of steps
* [FIX] Rooms swipes (#1034)
* Regression: on press style feedback
* Action button styles
* Fix animations
* Styles changed
* Update subscription without having to wait for socket
* Calculate width on RoomsListView instead
* [FIX] Decrease bigger emoji size to 30 (#1031)
* [FIX] Append server URL on avatar if necessary (#1038)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Bump version to 1.16.1 (#1045)
* [FIX] Set UserDefaults AppGroup on notification tap (#1047)
* [FIX] Auto-translate messages as they arrive
* Fix favorite button
* [FIX] Swipe animations (#1044)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* Fix favorite button
* [FIX] Auto-translate messages as they arrive (#1049)
* Comment removeClippedSubviews
* Comment width animation
* Remove redux from RoomItem
* Fix wrong re-render comparison
* Remove listener
* Raise minDeltaX
* memo actions
* Spring with native driver
* Refactor functions
* Fix props issues
* Remove RoomItem.height
* Long swipe
* Refactor animations
* this.rowTranslation -> this.transX
* Moved state to this
* [FIX] Auto-translate messages as they arrive
* [i18n] Add missing de translations (#1040)
* [CHORE] Switch to react-native-localize (#1043)
* Bump version to 1.17.0 (#1057)
* Load views as needed (#1056)
* [IMPROVEMENT] Change "resend" icon position (#1048)
* [NEW] Video support (#801)
* [NEW] File upload (#882)
* [NEW] Share extension (#942)
* [FIX] Share extension CI build (#1060)
* Change bundleID
* Provisioning
* get provisioning profile
* [IMPROVEMENT] Reusable toast (#1065)
* [FIX] Moment locales (#1066)
* [FIX] Share Extension issues (#1064)
* [FIX] Empty white list enables all media types upload (#1077)
* Merge branch 'master' into develop (#1079)
* [FIX] Empty white list enables all media types upload (#1080)
* Create utils to media (canUpload)
* Fix variable name
* [CHORE] Update README (#1081)
* [FIX] Media share type (#1086)
* [RELEASE] Merge beta into master (#1142)
* [RELEASE] Merge beta into master (#1174)
* [RELEASE] Merge beta into master (#1282)
* Merge beta into master (#1461)
* Merge beta into master (#1637)
* Merge beta into master (#1759)
* Merge beta into master (#1897)
* [FIX] Close SortDropdown on sort select (#1230)
* [FIX] Cancel upload and check failed upload (#1232)
* [FIX] Slash commands not cleaning is typing and not using state (#1233)
* [FIX] Dispatch roomsRequest on app foreground event even if not connected (#1234)
* [CHORE] Update react-native-jitsi-meet (#1235)
* [FIX] Regex on run slash command (#1223)
* Update React Native to 0.61.1 (#1236)
* Update React Native to 0.61.1
* Update patch to SSL Pinning
* Revert storybook
* [CHORE] Update react-native-safe-area-view (#1219)
* [FIX] Try/catch JSON.parse XHR response (#1238)
* [FIX] Change messagebox icon immediate on change text (#1241)
* [FIX] Update last open on message stream received (#1240)
* [FIX] Remove animation from RoomsListView.willFocus (#1239)
* [FIX] Delete message on thread (#1214)
* [REGRESSION] Markdown text (#1242)
* [FIX] Jest (#1243)
* [FIX] Avatar shown when useRealName is activated (#1162)
* Fix avatar when use real name
* Wrong indentation
* [DOCS] Add SECURITY.md (#1244)
* [CHORE] Update react-native-reanimated to 1.3.0 (#1246)
* [FIX] Run credentials migration only once (#1245)
* [CHORE] Update react-native-jitsi-meet to 2.0.1 (#1249)
* [FIX] Messagebox onChangeText issues (#1252)
* Stop ongoing debounces on messagebox unmount
* Immediately change send icon, but keep debouncing others
* Make CustomEmoji stateless function
* Fix mentions keyExtractor
* [FIX] Room subscription issues (#1255)
* [FIX] Reaction press (#1258)
* [FIX] Channel avatars not showing after application unloads (#1264)
* Revert react-native-safe-area-view (#1265)
* [FIX] Remove console on production mode (#1268)
* [FIX] Messages preview issues (#1257)
* [FIX] Select user from native credentials (#1266)
* [FIX] Some issues on preview message (#1271)
* [FIX] Audio player track and thumb not rendering on Android (#1273)
* [FIX] Record audio message throws exception when FileSystem.getInfoAsync is called (#1272)
* [FIX] China shouldn't use CallKit (#1274)
* [FIX] Watermelon batches (#1277)
* Bump version to 1.20.1 (#1285)
* [CHORE] Remove memoize-one (#1284)
* [FIX] End Jitsi call on unmount (#1291)
* [FIX] Allow self-signed certificates (#1310)
* [FIX] Set User-Agent (#1318)
* Set User-Agent Fetch & Websocket & XHR
* Set User-Agent
* Custom User Agent on fetch/websocket
* Fix names
* Use DeviceInfo
* fix server with subpath (#1322)
* [FIX] Server with https:\\ instead of https:// (#1320)
* [FIX] Server dropdown not closing after changing stack (#1299)
* [FIX] Invalid server version (#1319)
* [IMPROVEMENT] Respect "Hide counter" preference (#1306)
* [FIX] Pass isFocused as a function to Messagebox (#1309)
* [CHORE] Remove icons folder (#1290)
* [CHORE] Refactor RoomItem touchable (#1331)
* [FIX] Unnecessary rerender on RoomItem when status is undefined (#1336)
* [UPDATE DEPS] react-navigation and react-navigation-stack (#1337)
* [FIX] Avatars not loading on share extension when Accounts_AvatarBlockUnauthenticatedAccess is enabled (#1339)
* Bump version to 1.20.2 (#1340)
* [FIX] Remove some unnecessary re-renders on Messagebox (#1341)
* [REGRESSION] Use LayoutAnimation instead of Transition API (#1338)
* [FIX] Remove setState from notifications view causing watermelon object to be updated outside an action (#1342)
* [IMPROVEMENT] Save last message as message when subscription is updated (#1344)
* [UPDATE DEPS] Update RN to 0.61.3 (#1345)
* [DOCS] Update Readme (#1346)
* [CHORE] Remove react-native-scrollable-tab-view fork (#1352)
* [FIX] URL preview (#1360)
* [REGRESSION] Decrease list view memory size (#1361)
* [FIX] Paste (#1350)
* [CHORE] Update gems (#1365)
* Bump version to 1.20.3 (#1366)
* [FIX] Use Ruby 2.4 on TestFlight upload (#1368)
* [FIX] Parse Urls (#1371)
* [FIX] Parse image URL only if it's not empty (#1372)
* [FIX] Load messages issues (#1373)
* Bump version to 1.21.0 (#1376)
* [FIX] Crowd login (#1381)
* [FIX] Clicking user avatar in thread previews crashes app (#1363)
* [IMPROVEMENT] Error messages on connect (#1379)
* [FIX] ProfileView input navigation error when custom fields aren't set (#1383)
* [FIX] Batch server deletion on logout (#1382)
* Bump app to 1.22.0 (#1387)
* [FIX] Server Version (#1392)
* Update patch and minor deps (#1386)
* [FIX] Crash when open thread (#1395)
* Bump version to 1.23.0 (#1394)
* [I18N] Update ru.js (#1384)
* [FIX] CAS building wrong URL (#1362)
* [FIX] Delete messages (#1399)
* [FIX] In-app notification showing wrong content on channels (#1400)
* Bump version to 1.24.0 (#1404)
* [FIX] Prevent server with whitespace (#1402)
* [IMPROVEMENT] Keyboard and content type on login (#1403)
* [FIX] Messages stop loading (#1410)
* [NEW] Tablet support (#1300)
* [IMPROVEMENT] Authentication via deep linking (#1418)
* [IMPROVEMENT] Markdown performance when identifying emoji only content (#1422)
* [FIX] BackHandler remove random failing on development (#1423)
* Bump version to 1.25.0 (#1424)
* [CHORE] Update CI Xcode Image (#1430)
* [FIX] Rooms grouping not working properly (#1435)
* [FIX] Take a video (#1437)
* [NEW] Themes (#1298)
* [FIX] Share extension doesn't reconnect to previous selected server on Android (#1429)
* [FIX] Init local settings on notification tap (#1438)
* Bump version to 1.26.0 (#1450)
* [FIX] Emoji parser not working on Hermes (#1445)
* [NEW] Enable Hermes (#1446)
* [FIX] Automatic theme repeating (#1457)
* [CHORE] Sync Experimental and Official app versions (#1458)
* [DOCS] Update readme (#1459)
* [FIX] Messages being sent but showing as temp status (#1469)
* [FIX] Missing messages after reconnect (#1470)
* [FIX] Few fixes on themes (#1477)
* [I18N] Missing German translations (#1465)
* Missing German translation
* adding a missing space behind colon
* added a missing space after colon
* and another attempt to finally fix this – got confused by all the branches
* some smaller fixes for the translation
* better wording
* fixed another typo
* [FIX] Crash while displaying the attached image with http on file name (#1401)
* [IMPROVEMENT] Tap app and server version to copy to clipboard (#1425)
* [NEW] Reply notification (#1448)
* [FIX] Incorrect background color login on iPad (#1480)
* [FIX] Prevent multiple tap on send (Share Extension) (#1481)
* [NEW] Image Viewer (#1479)
* [DOCS] Update Readme (#1485)
* [FIX] Jitsi with Hermes Enabled (#1523)
* [FIX] Draft messages not working with themed Messagebox (#1525)
* [FIX] Go to direct message from members list (#1519)
* [FIX] Make SAML wait for idp token instead of creating it on client (#1527)
* [FIX] Server Test Push Notification (#1508)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [CHORE] Update to new server response (#1509)
* [FIX] Insert messages with blank users (#1529)
* Bump version to 4.2.1 (#1530)
* [FIX] Error when normalizing empty messages (#1532)
* [REGRESSION] CAS (#1570)
* Bump version to 4.2.2 (#1571)
* [FIX] Add username block condition to prevent error (#1585)
* Bump version to 4.2.3
* Bump version to 4.2.4
* Bump version to 4.3.0 (#1630)
* [FIX] Channels doesn't load (#1586)
* [FIX] Channels doesn't load
* [FIX] Update roomsUpdatedAt when subscriptions.length is 0
* [FIX] Remove unnecessary changes
* [FIX] Improve the code
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Make SAML to work on Rocket.Chat < 2.3.0 (#1629)
* [NEW] Invite links (#1534)
* [FIX] Set the http-agent to the form that Rocket.Chat requires for logging (#1482)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] "Following thread" and "Unfollowed Thread" is hardcoded and not translated (#1625)
* [FIX] Disable reset button if form didn't changed (#1569)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Header title of RoomInfoView (#1553)
* [I18N] Gallery Permissions DE (#1542)
* [FIX] Not allow to send messages to archived room (#1623)
* [FIX] Profile fields automatically reset (#1502)
* [FIX] Show attachment on ThreadMessagesView (#1493)
* [NEW] Wordpress auth (#1633)
* [CHORE] Add Start Packager script (#1639)
* [CHORE] Update RN to 0.61.5 (#1638)
* [CHORE] Update RN to 0.61.5
* [CHORE] Update react-native patch
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* Bump version to 4.3.1 (#1641)
* [FIX] Change force logout rule (#1640)
* Bump version to 4.4.0 (#1643)
* [IMPROVEMENT] Use MessagingStyle on Android Notification (#1575)
* [NEW] Request review (#1627)
* [NEW] Pull to refresh RoomView (#1657)
* [FIX] Unsubscribe from room (#1655)
* [FIX] Server with subdirs (#1646)
* [NEW] Clear cache (#1660)
* [IMPROVEMENT] Memoize and batch subscriptions updates (#1642)
* [FIX] Disallow empty sharing (#1664)
* [REGRESSION] Use HTTPS links for sharing and markets protocol for review (#1663)
* [FIX] In some cases, share extension doesn't load images (#1649)
* [i18n] DE translations for new invite function and some minor fixes (#1631)
* [FIX] Remove duplicate jetify step (#1628)
minor: also remove 'cd' calls
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [REGRESSION] Read messages (#1666)
* [i18n] German translations missing (#1670)
* [FIX] Notifications crash on older Android Versions (#1672)
* [i18n] Added Dutch translation (#1676)
* [NEW] Omnichannel Beta (#1674)
* [NEW] Confirm logout/clear cache (#1688)
* [I18N] Add es-ES language (#1495)
* [NEW] UiKit Beta (#1497)
* [IMPROVEMENT] Use reselect (#1696)
* [FIX] Notification in Android API level less than 24 (#1692)
* [IMPROVEMENT] Send tmid on slash commands and media (#1698)
* [FIX] Unhandled action on UIKit (#1703)
* [NEW] Pull to refresh RoomsList (#1701)
* [IMPROVEMENT] Reset app when language is changed (#1702)
* [FIX] Small fixes on UIKit (#1709)
* [FIX] Spotlight (#1719)
* [CHORE] Update react-native-image-crop-picker (#1712)
* [FIX] Messages Overlapping (Android) and MessageBox Scroll (iOS) (#1720)
* [REGRESSION] Remove @ and # from mention (#1721)
* [NEW] Direct message from user info (#1516)
* [FIX] Delete slash commands (#1723)
* [IMPROVEMENT] Hold URL to copy (#1684)
* [FIX] Different sourcemaps generation for Hermes (#1724)
* [FIX] Different sourcemaps generation for Hermes
* Upload sourcemaps after build
* [REVERT] Show emoji keyboard on Android (#1738)
* [FIX] Stop logging react-native-image-crop-picker (#1745)
* [FIX] Prevent toast ref error (#1744)
* [FIX] Prevent reaction map error (#1743)
* [FIX] Add missing calls to user info (#1741)
* [FIX] Catch room unsubscribe error (#1739)
* [i18n] Missing German keys (#1735)
* [FIX] Missing i18n on MessagesView title (#1733)
* [FIX] UIKit Modal: Weird behavior on Android Tablet (#1742)
* [i18n] Missing key on German (#1747)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add Italian (#1736)
…
* [FIX] Notification stream throwing an error when there isn't a message on payload (#2637)
* [FIX] Threads not being updated and other related issues (#2636)
* Fix parent title on thread header breaking lines
* Fix https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2519
* Fix thread badge not being updated
* [FIX] Minor room header issues (#2630)
* Add hitSlop to RoomView header
* Use 1 icon padding for threads header
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
* [FIX] Whitelabel unable to find package name (#2626)
* Fixes #2625
* Fixes #2614
* Apply resValue on defaultConfig and undo unnecessary changes
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [i18n] Add missing German strings (#2619)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Model columns misplaced (#2640)
* [FIX] Connect a null server (#2639)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Jitsi users unable to unmute (#2623)
* [FIX] Jitsi users being muted always
* fix: bundle is invalid
* Update jitsi meet sdk with ui improvements
* Update JitsiMeetSDK ios
* Centralize toolbox android
* Fix images on Jitsi
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Bump version to 4.12.1 (#2641)
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
Co-authored-by: phriedrich <info@phriedrich.de>
Co-authored-by: Dan Caseley <dan@caseley.me.uk>
Co-authored-by: Govind Dixit <GOVINDDIXIT93@GMAIL.COM>
Co-authored-by: Ezequiel de Oliveira <ezequiel1de1oliveira@gmail.com>
Co-authored-by: Youssef Muhamad <emaildeyoussefmuhamad@gmail.com>
Co-authored-by: Neil Agarwal <neil@neilagarwal.me>
Co-authored-by: Heng Sok <sokheng@idatahub.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rohit Verma <44283521+refactor-droidyy@users.noreply.github.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Júlia Grala <30629556+juliagrala@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Prateek Jain <44807945+Prateek93a@users.noreply.github.com>
Co-authored-by: Lucas Siqueira <lucassiqzro@gmail.com>
Co-authored-by: Calebe Rios <calebersmendes@gmail.com>
Co-authored-by: Pitstopper <18574776+Pitstopper@users.noreply.github.com>
Co-authored-by: Guilherme Siqueira <guilhersiqueira@gmail.com>
Co-authored-by: Prateek Jain <prateek93a@gmail.com>
Co-authored-by: devyaniChoubey <52153085+devyaniChoubey@users.noreply.github.com>
Co-authored-by: Bernard Seow <ssbing99@gmail.com>
Co-authored-by: Hiroki Ishiura <ishiura@ja2.so-net.ne.jp>
Co-authored-by: Exordian <jakob.englisch@gmail.com>
Co-authored-by: Daanchaam <daanhendriks97@gmail.com>
Co-authored-by: Iván Álvarez <ialvarezpereira@gmail.com>
Co-authored-by: Sarthak Pranesh <41206172+sarthakpranesh@users.noreply.github.com>
Co-authored-by: Michele Pellegrini <pellettiero@users.noreply.github.com>
Co-authored-by: Tanmoy Bhowmik <tanmoy.openroot@gmail.com>
Co-authored-by: Hibikine Kage <14365761+hibikine@users.noreply.github.com>
Co-authored-by: Zhaubassarova Aruzhan <49000079+azhaubassar@users.noreply.github.com>
Co-authored-by: Aroo <azhaubassar@gmail.com>
Co-authored-by: Sarthak Pranesh <sarthak.pranesh2018@vitstudent.ac.in>
Co-authored-by: Siddharth Padhi <padhisiddharth31@gmail.com>
Co-authored-by: Bruno Dantas <oliveiradantas96@gmail.com>
Co-authored-by: devyaniChoubey <devyanichoubey16@gmail.com>
Co-authored-by: nixxou <45721836+nixxou@users.noreply.github.com>
Co-authored-by: David-Tsui <st880221@gmail.com>
Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com>
Co-authored-by: Rishabh Gupta <38923768+imrishabh18@users.noreply.github.com>
Co-authored-by: Hendy Irawan <hendy@hendyirawan.com>
Co-authored-by: Alexandru Naiman <alex.naiman.4@gmail.com>
Co-authored-by: Dani <assgex@gmail.com>
Co-authored-by: Luis <ljcp28ljcp@gmail.com>
Co-authored-by: zaphod534 <32894570+zaphod534@users.noreply.github.com>
Co-authored-by: ankar84 <ankar84@gmail.com>
Co-authored-by: Карлан Антон Андреевич <KarlanAA@global.bcs>
Co-authored-by: Saket Mahajan <saketmahajan99@gmail.com>
Co-authored-by: Marco Jakobs <mj@jacotec.de>
2020-11-16 14:20:58 +00:00
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),s=n(r(d[4])),u=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),y=t(r(d[8])),p=r(d[9]),_=r(d[10]),v=r(d[11]),E=r(d[12]),P=r(d[13]),b=r(d[14]),h=r(d[15]),M=(r(d[16]),r(d[17])),I=n(r(d[18])),C=(function(t){function n(t){var o;return(0,l.default)(this,n),(o=(0,s.default)(this,(0,u.default)(n).call(this,t)))._onPress=o._onPress.bind((0,f.default)((0,f.default)(o))),o}return(0,c.default)(n,t),(0,o.default)(n,[{key:"render",value:function(){var t=this.props,n=t._isInviteFunctionsDiabled,l=t._isLonelyMeeting,o=t._styles,s=t.t;return l?y.default.createElement(p.View,{style:I.default.lonelyMeetingContainer},y.default.createElement(p.Text,{style:[I.default.lonelyMessage,o.lonelyMessage]},s('lonelyMeetingExperience.youAreAlone')),!n&&y.default.createElement(p.TouchableOpacity,{onPress:this._onPress,style:[I.default.lonelyButton,o.lonelyButton]},y.default.createElement(P.Icon,{size:24,src:P.IconAddPeople,style:I.default.lonelyButtonComponents}),y.default.createElement(p.Text,{style:[I.default.lonelyButtonComponents,o.lonelyMessage]},s('lonelyMeetingExperience.button')))):null}},{key:"_onPress",value:function(){this.props.dispatch((0,M.doInvitePeople)())}}]),n})(y.PureComponent);var B=(0,h.connect)(function(t){var n=t['features/base/config'].disableInviteFunctions,l=t['features/base/conference'].conference;return{_isInviteFunctionsDiabled:!(0,v.getFeatureFlag)(t,v.INVITE_ENABLED,!0)||n,_isLonelyMeeting:l&&1===(0,b.getParticipantCount)(t),_styles:_.ColorSchemeRegistry.get(t,'Conference')}})((0,E.translate)(C));e.default=B},1641,[2,3,4,5,6,9,10,8,59,15,438,951,726,548,704,443,522,1191,1640]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),s=n(r(d[6])),E=t(r(d[7])),c=r(d[8]),p=n(r(d[9])),_=r(d[10]),N=r(d[11]),v=r(d[12]),b=r(d[13]),y=r(d[14]),h=n(r(d[15])),T=t(r(d[16])),A=(function(t){function n(){return(0,l.default)(this,n),(0,o.default)(this,(0,f.default)(n).apply(this,arguments))}return(0,s.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){return this.props._visible?[E.default.createElement(p.default,{colors:T.NAVBAR_GRADIENT_COLORS,key:1,pointerEvents:"none",style:T.default.gradient},E.default.createElement(c.SafeAreaView,null,E.default.createElement(c.View,{style:T.default.gradientStretchTop}))),E.default.createElement(c.View,{key:2,pointerEvents:"box-none",style:T.default.navBarWrapper},E.default.createElement(b.PictureInPictureButton,{styles:T.default.navBarButton}),E.default.createElement(c.View,{pointerEvents:"box-none",style:T.default.roomNameWrapper},this.props._meetingNameEnabled&&E.default.createElement(c.Text,{numberOfLines:1,style:T.default.roomName},this.props._meetingName),this.props._conferenceTimerEnabled&&E.default.createElement(h.default,null)))]:null}}]),n})(E.Component);var B=(0,v.connect)(function(t){return{_conferenceTimerEnabled:(0,N.getFeatureFlag)(t,N.CONFERENCE_TIMER_ENABLED,!0),_meetingName:(0,_.getConferenceName)(t),_meetingNameEnabled:(0,N.getFeatureFlag)(t,N.MEETING_NAME_ENABLED,!0),_visible:(0,y.isToolboxVisible)(t)}})(A);e.default=B},1642,[2,3,4,5,6,9,10,59,15,1512,1101,951,443,1164,1316,1643,1640]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=T,e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),l=t(r(d[5])),c=r(d[6]),f=r(d[7]),v=r(d[8]),_=r(d[9]),p=r(d[10]),h=(function(t){function c(t){var o;return(0,n.default)(this,c),(o=(0,s.default)(this,(0,u.default)(c).call(this,t))).state={timerValue:(0,_.getLocalizedDurationFormatter)(0)},o}return(0,l.default)(c,t),(0,o.default)(c,[{key:"componentDidMount",value:function(){this._startTimer()}},{key:"componentWillUnmount",value:function(){this._stopTimer()}},{key:"render",value:function(){var t=this.state.timerValue;return this.props._startTimestamp?(0,f.renderConferenceTimer)(t):null}},{key:"_setStateFromUTC",value:function(t,n){if(t&&n&&!(n<t)){var o=n-t,s=(0,_.getLocalizedDurationFormatter)(o);this.setState({timerValue:s})}}},{key:"_startTimer",value:function(){var t=this;this._interval||(this._setStateFromUTC(this.props._startTimestamp,(new Date).getTime()),this._interval=setInterval(function(){t._setStateFromUTC(t.props._startTimestamp,(new Date).getTime())},1e3))}},{key:"_stopTimer",value:function(){this._interval&&clearInterval(this._interval),this.setState({timerValue:(0,_.getLocalizedDurationFormatter)(0)})}}]),c})(c.Component);function T(t){return{_startTimestamp:(0,v.getConferenceTimestamp)(t)}}var y=(0,p.connect)(T)(h);e.default=y},1643,[3,4,5,6,9,10,59,1508,1114,726,443]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return n.default.createElement(u.Text,{numberOfLines:4,style:f.default.roomTimer},t)};var n=t(r(d[1])),u=r(d[2]),f=t(r(d[3]))},1644,[3,59,15,1640]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=u(r(d[2])),l=u(r(d[3])),f=u(r(d[4])),o=u(r(d[5])),c=u(r(d[6])),s=u(r(d[7])),_=r(d[8]),p=r(d[9]),v=r(d[10]),y=t(r(d[11])),b=u(r(d[12])),h=(function(t){function u(){return(0,n.default)(this,u),(0,f.default)(this,(0,o.default)(u).apply(this,arguments))}return(0,c.default)(u,t),(0,l.default)(u,[{key:"_render",value:function(){return s.default.createElement(p.CircularLabel,{icon:_.IconWarning,style:b.default.insecureRoomNameLabel})}}]),u})(y.default),L=(0,v.connect)(y._mapStateToProps)(h);e.default=L},1645,[2,3,4,5,6,9,10,59,548,1537,443,1646,1640]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t){var n=t['features/base/conference'],u=n.locked,o=n.room,l=t['features/lobby'].lobbyEnabled,f=t['features/base/config'].enableInsecureRoomNameWarning;return{_visible:void 0!==f&&f&&o&&(0,b.default)(o)&&!(l||Boolean(u))}},e.default=void 0;var n=t(r(d[1])),u=t(r(d[2])),o=t(r(d[3])),l=t(r(d[4])),f=t(r(d[5])),s=r(d[6]),b=t(r(d[7])),c=(function(t){function s(){return(0,n.default)(this,s),(0,o.default)(this,(0,l.default)(s).apply(this,arguments))}return(0,f.default)(s,t),(0,u.default)(s,[{key:"render",value:function(){return this.props._visible?this._render():null}}]),s})(s.PureComponent);e.default=c},1646,[3,4,5,6,9,10,59,1647]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return(0,n.default)(t).score<3};var n=t(r(d[1]))},1647,[3,1648]);
__d(function(g,r,i,a,m,e,d){var t,n,s,o,c,u;n=r(d[0]),s=r(d[1]),c=r(d[2]),t=r(d[3]),o=function(){return(new Date).getTime()},u=function(u,_){var f,l,b,h,p,k,q,v,w,y,x;for(null==_&&(_=[]),y=o(),w=[],b=0,h=_.length;b<h;b++)"string"!=(q=typeof(f=_[b]))&&"number"!==q&&"boolean"!==q||w.push(f.toString().toLowerCase());for(k in n.set_user_input_dictionary(w),p=n.omnimatch(u),(v=s.most_guessable_match_sequence(u,p)).calc_time=o()-y,l=c.estimate_attack_times(v.guesses))x=l[k],v[k]=x;return v.feedback=t.get_feedback(v.score,v.sequence),v},m.exports=u},1648,[1649,1652,1653,1654]);
__d(function(g,r,i,a,m,e,d){var t,n,s,o,h,u,l,c,f,_,p,v;for(p in c=r(d[0]),u=r(d[1]),v=r(d[2]),l=function(t){var n,s,o,h;for(h={},n=1,o=0,s=t.length;o<s;o++)h[t[o]]=n,n+=1;return h},o={},c)f=c[p],o[p]=l(f);n={qwerty:u.qwerty,dvorak:u.dvorak,keypad:u.keypad,mac_keypad:u.mac_keypad},s={a:['4','@'],b:['8'],c:['(','{','[','<'],e:['3'],g:['6','9'],i:['1','!','|'],l:['1','|','7'],o:['0'],s:['$','5'],t:['+','7'],x:['%'],z:['2']},h={recent_year:/19\d\d|200\d|201\d/g},t={4:[[1,2],[2,3]],5:[[1,3],[2,3]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]},_={empty:function(t){var n;return 0===(function(){var s;for(n in s=[],t)s.push(n);return s})().length},extend:function(t,n){return t.push.apply(t,n)},translate:function(t,n){var s;return(function(){var o,h,u,l;for(l=[],h=0,o=(u=t.split('')).length;h<o;h++)s=u[h],l.push(n[s]||s);return l})().join('')},mod:function(t,n){return(t%n+n)%n},sorted:function(t){return t.sort(function(t,n){return t.i-n.i||t.j-n.j})},omnimatch:function(t){var n,s,o,h,u;for(h=[],u=0,n=(o=[this.dictionary_match,this.reverse_dictionary_match,this.l33t_match,this.spatial_match,this.repeat_match,this.sequence_match,this.regex_match,this.date_match]).length;u<n;u++)s=o[u],this.extend(h,s.call(this,t));return this.sorted(h)},dictionary_match:function(t,n){var s,h,u,l,c,f,_,p,v,y,x,k,b,j;for(s in null==n&&(n=o),c=[],l=t.length,p=t.toLowerCase(),n)for(y=n[s],h=f=0,x=l;0<=x?f<x:f>x;h=0<=x?++f:--f)for(u=_=k=h,b=l;k<=b?_<b:_>b;u=k<=b?++_:--_)p.slice(h,+u+1||9e9)in y&&(v=y[j=p.slice(h,+u+1||9e9)],c.push({pattern:'dictionary',i:h,j:u,token:t.slice(h,+u+1||9e9),matched_word:j,rank:v,dictionary_name:s,reversed:!1,l33t:!1}));return this.sorted(c)},reverse_dictionary_match:function(t,n){var s,h,u,l,c,f;for(null==n&&(n=o),f=t.split('').reverse().join(''),l=0,s=(u=this.dictionary_match(f,n)).length;l<s;l++)(h=u[l]).token=h.token.split('').reverse().join(''),h.reversed=!0,c=[t.length-1-h.j,t.length-1-h.i],h.i=c[0],h.j=c[1];return this.sorted(u)},set_user_input_dictionary:function(t){return o.user_inputs=l(t.slice())},relevant_l33t_subtable:function(t,n){var s,o,h,u,l,c,f,_,p,v;for(l={},u=0,o=(c=t.split('')).length;u<o;u++)s=c[u],l[s]=!0;for(h in v={},n)p=n[h],(f=(function(){var t,n,s;for(s=[],n=0,t=p.length;n<t;n++)(_=p[n])in l&&s.push(_);return s})()).length>0&&(v[h]=f);return v},enumerate_l33t_subs:function(t){var n,s,o,h,u,l,c,f,_,p,v,y,x,k,b;for(u=(function(){var n;for(h in n=[],t)n.push(h);return n})(),b=[[]],s=function(t){var n,s,o,u,l,c,f,_;for(s=[],l={},c=0,u=t.length;c<u;c++)f=t[c],(n=(function(){var t,n,s;for(s=[],_=n=0,t=f.length;n<t;_=++n)h=f[_],s.push([h,_]);return s})()).sort(),(o=(function(){var t,s,o;for(o=[],_=s=0,t=n.length;s<t;_=++s)h=n[_],o.push(h+','+_);return o})().join('-'))in l||(l[o]=!0,s.push(f));return s},(o=function(n){var h,u,l,c,f,_,p,v,y,x,k,j,A,I,q,w;if(n.length){for(u=n[0],A=n.slice(1),p=[],v=0,f=(k=t[u]).length;v<f;v++)for(c=k[v],y=0,_=b.length;y<_;y++){for(h=-1,l=x=0,j=(I=b[y]).length;0<=j?x<j:x>j;l=0<=j?++x:--x)if(I[l][0]===c){h=l;break}-1===h?(w=I.concat([[c,u]]),p.push(w)):((q=I.slice(0)).splice(h,1),q.push([c,u]),p.push(I),p.push(q))}return b=s(p),o(A)}})(u),k=[],_=0,c=b.length;_<c;_++){for(x={},p=0,f=(y=b[_]).length;p<f;p++)l=(v=y[p])[0],n=v[1],x[l]=n;k.push(x)}return k},l33t_match:function(t,n,h){var u,l,c,f,_,p,v,y,x,k,b,j,A,I,q,w;for(null==n&&(n=o),null==h&&(h=s),v=[],y=0,c=(k=this.enumerate_l33t_subs(this.relevant_l33t_subtable(t,h))).length;y<c&&(j=k[y],!this.empty(j));y++)for(I=this.translate(t,j),x=0,f=(b=this.dictionary_match(I,n)).length;x<f;x++)if(_=b[x],(q=t.slice(_.i,+_.j+1||9e9)).toLowerCase()!==_.matched_word){for(A in p={},j)u=j[A],-1!==q.indexOf(A)&&(p[A]=u);_.l33t=!0,_.token=q,_.sub=p,_.sub_display=(function(){var t;for(l in t=[],p)w=p[l],t.push(l+" -> "+w);return t})().join(', '),v.push(_)}return this.sorted(v.filter(function(t){return t.token.length>1}))},spatial_match:function(t,s){var o,h,u;for(h in null==s&&(s=n),u=[],s)o=s[h],this.extend(u,this.spatial_match_helper(t,o,h));return this.sorted(u)},SHIFTED_RX:/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVB
__d(function(e,a,i,r,n,s,o){var t;t={passwords:"123456,password,12345678,qwerty,123456789,12345,1234,111111,1234567,dragon,123123,baseball,abc123,football,monkey,letmein,shadow,master,696969,mustang,666666,qwertyuiop,123321,1234567890,pussy,superman,654321,1qaz2wsx,7777777,fuckyou,qazwsx,jordan,123qwe,000000,killer,trustno1,hunter,harley,zxcvbnm,asdfgh,buster,batman,soccer,tigger,charlie,sunshine,iloveyou,fuckme,ranger,hockey,computer,starwars,asshole,pepper,klaster,112233,zxcvbn,freedom,princess,maggie,pass,ginger,11111111,131313,fuck,love,cheese,159753,summer,chelsea,dallas,biteme,matrix,yankees,6969,corvette,austin,access,thunder,merlin,secret,diamond,hello,hammer,fucker,1234qwer,silver,gfhjkm,internet,samantha,golfer,scooter,test,orange,cookie,q1w2e3r4t5,maverick,sparky,phoenix,mickey,bigdog,snoopy,guitar,whatever,chicken,camaro,mercedes,peanut,ferrari,falcon,cowboy,welcome,sexy,samsung,steelers,smokey,dakota,arsenal,boomer,eagles,tigers,marina,nascar,booboo,gateway,yellow,porsche,monster,spider,diablo,hannah,bulldog,junior,london,purple,compaq,lakers,iceman,qwer1234,hardcore,cowboys,money,banana,ncc1701,boston,tennis,q1w2e3r4,coffee,scooby,123654,nikita,yamaha,mother,barney,brandy,chester,fuckoff,oliver,player,forever,rangers,midnight,chicago,bigdaddy,redsox,angel,badboy,fender,jasper,slayer,rabbit,natasha,marine,bigdick,wizard,marlboro,raiders,prince,casper,fishing,flower,jasmine,iwantu,panties,adidas,winter,winner,gandalf,password1,enter,ghbdtn,1q2w3e4r,golden,cocacola,jordan23,winston,madison,angels,panther,blowme,sexsex,bigtits,spanky,bitch,sophie,asdfasdf,horny,thx1138,toyota,tiger,dick,canada,12344321,blowjob,8675309,muffin,liverpoo,apples,qwerty123,passw0rd,abcd1234,pokemon,123abc,slipknot,qazxsw,123456a,scorpion,qwaszx,butter,startrek,rainbow,asdfghjkl,razz,newyork,redskins,gemini,cameron,qazwsxedc,florida,liverpool,turtle,sierra,viking,booger,butthead,doctor,rocket,159357,dolphins,captain,bandit,jaguar,packers,pookie,peaches,789456,asdf,dolphin,helpme,blue,theman,maxwell,qwertyui,shithead,lovers,maddog,giants,nirvana,metallic,hotdog,rosebud,mountain,warrior,stupid,elephant,suckit,success,bond007,jackass,alexis,porn,lucky,scorpio,samson,q1w2e3,azerty,rush2112,driver,freddy,1q2w3e4r5t,sydney,gators,dexter,red123,123456q,12345a,bubba,creative,voodoo,golf,trouble,america,nissan,gunner,garfield,bullshit,asdfghjk,5150,fucking,apollo,1qazxsw2,2112,eminem,legend,airborne,bear,beavis,apple,brooklyn,godzilla,skippy,4815162342,buddy,qwert,kitten,magic,shelby,beaver,phantom,asdasd,xavier,braves,darkness,blink182,copper,platinum,qweqwe,tomcat,01012011,girls,bigboy,102030,animal,police,online,11223344,voyager,lifehack,12qwaszx,fish,sniper,315475,trinity,blazer,heaven,lover,snowball,playboy,loveme,bubbles,hooters,cricket,willow,donkey,topgun,nintendo,saturn,destiny,pakistan,pumpkin,digital,sergey,redwings,explorer,tits,private,runner,therock,guinness,lasvegas,beatles,789456123,fire,cassie,christin,qwerty1,celtic,asdf1234,andrey,broncos,007007,babygirl,eclipse,fluffy,cartman,michigan,carolina,testing,alexande,birdie,pantera,cherry,vampire,mexico,dickhead,buffalo,genius,montana,beer,minecraft,maximus,flyers,lovely,stalker,metallica,doggie,snickers,speedy,bronco,lol123,paradise,yankee,horses,magnum,dreams,147258369,lacrosse,ou812,goober,enigma,qwertyu,scotty,pimpin,bollocks,surfer,cock,poohbear,genesis,star,asd123,qweasdzxc,racing,hello1,hawaii,eagle1,viper,poopoo,einstein,boobies,12345q,bitches,drowssap,simple,badger,alaska,action,jester,drummer,111222,spitfire,forest,maryjane,champion,diesel,svetlana,friday,hotrod,147258,chevy,lucky1,westside,security,google,badass,tester,shorty,thumper,hitman,mozart,zaq12wsx,boobs,reddog,010203,lizard,a123456,123456789a,ruslan,eagle,1232323q,scarface,qwerty12,147852,a12345,buddha,porno,420420,spirit,money1,stargate,qwe123,naruto,mercury,liberty,12345qwert,semperfi,suzuki,popcorn,spooky,marley,scotland,kitty,cherokee,vikings,simpsons,rascal,qweasd,hummer,loveyou,michael1,patches,russia,jupiter,penguin,passion,cumshot,vfhbyf,honda,vladimir,sandman,passport,raider,bastard,123789,infinity,as
__d(function(g,r,i,a,m,e,d){var l;l={qwerty:{"!":["`~",null,null,"2@","qQ",null],"\"":[";:","[{","]}",null,null,"/?"],"#":["2@",null,null,"4$","eE","wW"],$:["3#",null,null,"5%","rR","eE"],"%":["4$",null,null,"6^","tT","rR"],"&":["6^",null,null,"8*","uU","yY"],"'":[";:","[{","]}",null,null,"/?"],"(":["8*",null,null,"0)","oO","iI"],")":["9(",null,null,"-_","pP","oO"],"*":["7&",null,null,"9(","iI","uU"],"+":["-_",null,null,null,"]}","[{"],",":["mM","kK","lL",".>",null,null],"-":["0)",null,null,"=+","[{","pP"],".":[",<","lL",";:","/?",null,null],"/":[".>",";:","'\"",null,null,null],0:["9(",null,null,"-_","pP","oO"],1:["`~",null,null,"2@","qQ",null],2:["1!",null,null,"3#","wW","qQ"],3:["2@",null,null,"4$","eE","wW"],4:["3#",null,null,"5%","rR","eE"],5:["4$",null,null,"6^","tT","rR"],6:["5%",null,null,"7&","yY","tT"],7:["6^",null,null,"8*","uU","yY"],8:["7&",null,null,"9(","iI","uU"],9:["8*",null,null,"0)","oO","iI"],":":["lL","pP","[{","'\"","/?",".>"],";":["lL","pP","[{","'\"","/?",".>"],"<":["mM","kK","lL",".>",null,null],"=":["-_",null,null,null,"]}","[{"],">":[",<","lL",";:","/?",null,null],"?":[".>",";:","'\"",null,null,null],"@":["1!",null,null,"3#","wW","qQ"],A:[null,"qQ","wW","sS","zZ",null],B:["vV","gG","hH","nN",null,null],C:["xX","dD","fF","vV",null,null],D:["sS","eE","rR","fF","cC","xX"],E:["wW","3#","4$","rR","dD","sS"],F:["dD","rR","tT","gG","vV","cC"],G:["fF","tT","yY","hH","bB","vV"],H:["gG","yY","uU","jJ","nN","bB"],I:["uU","8*","9(","oO","kK","jJ"],J:["hH","uU","iI","kK","mM","nN"],K:["jJ","iI","oO","lL",",<","mM"],L:["kK","oO","pP",";:",".>",",<"],M:["nN","jJ","kK",",<",null,null],N:["bB","hH","jJ","mM",null,null],O:["iI","9(","0)","pP","lL","kK"],P:["oO","0)","-_","[{",";:","lL"],Q:[null,"1!","2@","wW","aA",null],R:["eE","4$","5%","tT","fF","dD"],S:["aA","wW","eE","dD","xX","zZ"],T:["rR","5%","6^","yY","gG","fF"],U:["yY","7&","8*","iI","jJ","hH"],V:["cC","fF","gG","bB",null,null],W:["qQ","2@","3#","eE","sS","aA"],X:["zZ","sS","dD","cC",null,null],Y:["tT","6^","7&","uU","hH","gG"],Z:[null,"aA","sS","xX",null,null],"[":["pP","-_","=+","]}","'\"",";:"],"\\":["]}",null,null,null,null,null],"]":["[{","=+",null,"\\|",null,"'\""],"^":["5%",null,null,"7&","yY","tT"],_:["0)",null,null,"=+","[{","pP"],"`":[null,null,null,"1!",null,null],a:[null,"qQ","wW","sS","zZ",null],b:["vV","gG","hH","nN",null,null],c:["xX","dD","fF","vV",null,null],d:["sS","eE","rR","fF","cC","xX"],e:["wW","3#","4$","rR","dD","sS"],f:["dD","rR","tT","gG","vV","cC"],g:["fF","tT","yY","hH","bB","vV"],h:["gG","yY","uU","jJ","nN","bB"],i:["uU","8*","9(","oO","kK","jJ"],j:["hH","uU","iI","kK","mM","nN"],k:["jJ","iI","oO","lL",",<","mM"],l:["kK","oO","pP",";:",".>",",<"],m:["nN","jJ","kK",",<",null,null],n:["bB","hH","jJ","mM",null,null],o:["iI","9(","0)","pP","lL","kK"],p:["oO","0)","-_","[{",";:","lL"],q:[null,"1!","2@","wW","aA",null],r:["eE","4$","5%","tT","fF","dD"],s:["aA","wW","eE","dD","xX","zZ"],t:["rR","5%","6^","yY","gG","fF"],u:["yY","7&","8*","iI","jJ","hH"],v:["cC","fF","gG","bB",null,null],w:["qQ","2@","3#","eE","sS","aA"],x:["zZ","sS","dD","cC",null,null],y:["tT","6^","7&","uU","hH","gG"],z:[null,"aA","sS","xX",null,null],"{":["pP","-_","=+","]}","'\"",";:"],"|":["]}",null,null,null,null,null],"}":["[{","=+",null,"\\|",null,"'\""],"~":[null,null,null,"1!",null,null]},dvorak:{"!":["`~",null,null,"2@","'\"",null],"\"":[null,"1!","2@",",<","aA",null],"#":["2@",null,null,"4$",".>",",<"],$:["3#",null,null,"5%","pP",".>"],"%":["4$",null,null,"6^","yY","pP"],"&":["6^",null,null,"8*","gG","fF"],"'":[null,"1!","2@",",<","aA",null],"(":["8*",null,null,"0)","rR","cC"],")":["9(",null,null,"[{","lL","rR"],"*":["7&",null,null,"9(","cC","gG"],"+":["/?","]}",null,"\\|",null,"-_"],",":["'\"","2@","3#",".>","oO","aA"],"-":["sS","/?","=+",null,null,"zZ"],".":[",<","3#","4$","pP","eE","oO"],"/":["lL","[{","]}","=+","-_","sS"],0:["9(",null,null,"[{","lL","rR"],1:["`~",null,null,"2@","'\"",null],2:["1!",null,null,"3#",",<","'\""],3:["2@",null,null,"4$",".>",",<"],4:["3#",null,null,"5%","pP",".>"],5:["4$",null,null,"6^","yY","pP"],6:["5%",null,null,"7&","f
__d(function(g,r,i,a,m,e,d){var t,n,s,u;t=r(d[0]),n=function(t){var n,s,u,o,h;for(u in n=0,t)h=t[u],n+=(function(){var t,n,s;for(s=[],n=0,t=h.length;n<t;n++)(o=h[n])&&s.push(o);return s})().length;return n/=(function(){var n;for(s in n=[],t)t[s],n.push(s);return n})().length},u={nCk:function(t,n){var s,u,o,h;if(n>t)return 0;if(0===n)return 1;for(o=1,s=u=1,h=n;1<=h?u<=h:u>=h;s=1<=h?++u:--u)o*=t,o/=s,t-=1;return o},log10:function(t){return Math.log(t)/Math.log(10)},log2:function(t){return Math.log(t)/Math.log(2)},factorial:function(t){var n,s,u,o;if(t<2)return 1;for(n=1,s=u=2,o=t;2<=o?u<=o:u>=o;s=2<=o?++u:--u)n*=s;return n},most_guessable_match_sequence:function(t,n,s){var u,o,h,f,_,c,l,E,p,A,v,R,P,I,M,k,N,S,T,Y,b,D,O;for(null==s&&(s=!1),v=t.length,A=(function(){var t,n,s;for(s=[],t=0,n=v;0<=n?t<n:t>n;0<=n?++t:--t)s.push([]);return s})(),R=0,_=n.length;R<_;R++)A[(E=n[R]).j].push(E);for(k=0,c=A.length;k<c;k++)A[k].sort(function(t,n){return t.i-n.i});for(P={m:(function(){var t,n,s;for(n=[],s=0,t=v;0<=t?s<t:s>t;0<=t?++s:--s)n.push({});return n})(),pi:(function(){var t,n,s;for(n=[],s=0,t=v;0<=t?s<t:s>t;0<=t?++s:--s)n.push({});return n})(),g:(function(){var t,n,s;for(n=[],s=0,t=v;0<=t?s<t:s>t;0<=t?++s:--s)n.push({});return n})()},O=this,b=function(n,u){var o,h,f,_,c,l;for(h in _=n.j,c=O.estimate_guesses(n,t),u>1&&(c*=P.pi[n.i-1][u-1]),f=O.factorial(u)*c,s||(f+=Math.pow(1e4,u-1)),l=P.g[_])if(o=l[h],!(h>u)&&o<=f)return;return P.g[_][u]=f,P.m[_][u]=n,P.pi[_][u]=c},u=function(t){var n,s,u,o,h,f;for(E=p(0,t),b(E,1),h=[],n=f=1,o=t;1<=o?f<=o:f>=o;n=1<=o?++f:--f)E=p(n,t),h.push((function(){var t,o;for(s in o=[],t=P.m[n-1])u=t[s],s=parseInt(s),'bruteforce'!==u.pattern&&o.push(b(E,s+1));return o})());return h},p=function(n,s){return{pattern:'bruteforce',token:t.slice(n,+s+1||9e9),i:n,j:s}},Y=function(t){var n,s,u,o,h,f,_;for(s in f=[],o=t-1,h=void 0,u=1/0,_=P.g[o])(n=_[s])<u&&(h=s,u=n);for(;o>=0;)E=P.m[o][h],f.unshift(E),o=E.i-1,h--;return f},h=T=0,N=v;0<=N?T<N:T>N;h=0<=N?++T:--T){for(D=0,l=(S=A[h]).length;D<l;D++)if((E=S[D]).i>0)for(f in P.m[E.i-1])f=parseInt(f),b(E,f+1);else b(E,1);u(h)}return I=(M=Y(v)).length,o=0===t.length?1:P.g[v-1][I],{password:t,guesses:o,guesses_log10:this.log10(o),sequence:M}},estimate_guesses:function(t,n){var s,u;return null!=t.guesses?t.guesses:(u=1,t.token.length<n.length&&(u=1===t.token.length?10:50),s={bruteforce:this.bruteforce_guesses,dictionary:this.dictionary_guesses,spatial:this.spatial_guesses,repeat:this.repeat_guesses,sequence:this.sequence_guesses,regex:this.regex_guesses,date:this.date_guesses}[t.pattern].call(this,t),t.guesses=Math.max(s,u),t.guesses_log10=this.log10(t.guesses),t.guesses)},bruteforce_guesses:function(t){var n,s;return(n=Math.pow(10,t.token.length))===Number.POSITIVE_INFINITY&&(n=Number.MAX_VALUE),s=1===t.token.length?11:51,Math.max(n,s)},repeat_guesses:function(t){return t.base_guesses*t.repeat_count},sequence_guesses:function(t){var n,s;return n='a'===(s=t.token.charAt(0))||'A'===s||'z'===s||'Z'===s||'0'===s||'1'===s||'9'===s?4:s.match(/\d/)?10:26,t.ascending||(n*=2),n*t.token.length},MIN_YEAR_SPACE:20,REFERENCE_YEAR:(new Date).getFullYear(),regex_guesses:function(t){var n,s;if(n={alpha_lower:26,alpha_upper:26,alpha:52,alphanumeric:62,digits:10,symbols:33},t.regex_name in n)return Math.pow(n[t.regex_name],t.token.length);switch(t.regex_name){case'recent_year':return s=Math.abs(parseInt(t.regex_match[0])-this.REFERENCE_YEAR),s=Math.max(s,this.MIN_YEAR_SPACE)}},date_guesses:function(t){var n;return n=365*Math.max(Math.abs(t.year-this.REFERENCE_YEAR),this.MIN_YEAR_SPACE),t.separator&&(n*=4),n},KEYBOARD_AVERAGE_DEGREE:n(t.qwerty),KEYPAD_AVERAGE_DEGREE:n(t.keypad),KEYBOARD_STARTING_POSITIONS:(function(){var n,u;for(s in u=[],n=t.qwerty)n[s],u.push(s);return u})().length,KEYPAD_STARTING_POSITIONS:(function(){var n,u;for(s in u=[],n=t.keypad)n[s],u.push(s);return u})().length,spatial_guesses:function(t){var n,s,u,o,h,f,_,c,l,E,p,A,v,R,P,I,M;for('qwerty'===(E=t.graph)||'dvorak'===E?(R=this.KEYBOARD_STARTING_POSITIONS,o=this.KEYBOARD_AVERAGE_DEGREE):(R=this.KEYPAD_STARTING_POSITIONS,o
__d(function(g,r,i,a,m,e,d){var n;n={estimate_attack_times:function(n){var t,o,s,_;for(s in t={},o={online_throttling_100_per_hour:n/.027777777777777776,online_no_throttling_10_per_second:n/10,offline_slow_hashing_1e4_per_second:n/1e4,offline_fast_hashing_1e10_per_second:n/1e10})_=o[s],t[s]=this.display_time(_);return{crack_times_seconds:o,crack_times_display:t,score:this.guesses_to_score(n)}},guesses_to_score:function(n){return 5,n<1005?0:n<1e6+5?1:n<1e8+5?2:n<1e10+5?3:4},display_time:function(n){var t,o,s,_,u;return 60,3600,86400,2678400,u=32140800,321408e4,s=(_=n<1?[null,'less than a second']:n<60?[t=Math.round(n),t+" second"]:n<3600?[t=Math.round(n/60),t+" minute"]:n<86400?[t=Math.round(n/3600),t+" hour"]:n<2678400?[t=Math.round(n/86400),t+" day"]:n<u?[t=Math.round(n/2678400),t+" month"]:n<321408e4?[t=Math.round(n/u),t+" year"]:[null,'centuries'])[1],null!=(o=_[0])&&1!==o&&(s+='s'),s}},m.exports=n},1653,[]);
__d(function(g,r,i,a,m,e,d){var s,t;t=r(d[0]),s={default_feedback:{warning:'',suggestions:["Use a few words, avoid common phrases","No need for symbols, digits, or uppercase letters"]},get_feedback:function(t,n){var o,u,c,h,l,y;if(0===n.length)return this.default_feedback;if(t>2)return{warning:'',suggestions:[]};for(h=n[0],u=0,c=(y=n.slice(1)).length;u<c;u++)(l=y[u]).token.length>h.token.length&&(h=l);return o='Add another word or two. Uncommon words are better.',null!=(s=this.get_match_feedback(h,1===n.length))?(s.suggestions.unshift(o),null==s.warning&&(s.warning='')):s={warning:'',suggestions:[o]},s},get_match_feedback:function(s,t){switch(s.pattern){case'dictionary':return this.get_dictionary_match_feedback(s,t);case'spatial':return s.graph.toUpperCase(),{warning:1===s.turns?'Straight rows of keys are easy to guess':'Short keyboard patterns are easy to guess',suggestions:['Use a longer keyboard pattern with more turns']};case'repeat':return{warning:1===s.base_token.length?'Repeats like "aaa" are easy to guess':'Repeats like "abcabcabc" are only slightly harder to guess than "abc"',suggestions:['Avoid repeated words and characters']};case'sequence':return{warning:"Sequences like abc or 6543 are easy to guess",suggestions:['Avoid sequences']};case'regex':if('recent_year'===s.regex_name)return{warning:"Recent years are easy to guess",suggestions:['Avoid recent years','Avoid years that are associated with you']};break;case'date':return{warning:"Dates are often easy to guess",suggestions:['Avoid dates and years that are associated with you']}}},get_dictionary_match_feedback:function(s,n){var o,u,c,h;return c='passwords'===s.dictionary_name?!n||s.l33t||s.reversed?s.guesses_log10<=4?'This is similar to a commonly used password':void 0:s.rank<=10?'This is a top-10 common password':s.rank<=100?'This is a top-100 common password':'This is a very common password':'english_wikipedia'===s.dictionary_name?n?'A word by itself is easy to guess':void 0:'surnames'===(o=s.dictionary_name)||'male_names'===o||'female_names'===o?n?'Names and surnames by themselves are easy to guess':'Common names and surnames are easy to guess':'',u=[],(h=s.token).match(t.START_UPPER)?u.push("Capitalization doesn't help very much"):h.match(t.ALL_UPPER)&&h.toLowerCase()!==h&&u.push("All-uppercase is almost as easy to guess as all-lowercase"),s.reversed&&s.token.length>=4&&u.push("Reversed words aren't much harder to guess"),s.l33t&&u.push("Predictable substitutions like '@' instead of 'a' don't help very much"),{warning:c,suggestions:u}}},m.exports=s},1654,[1652]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1655,[1392]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1656,[1657]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"UnsupportedDesktopBrowser",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1657,[3,1658]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=s(r(d[2])),l=s(r(d[3])),u=s(r(d[4])),n=s(r(d[5])),f=s(r(d[6])),p=t(r(d[7])),c=r(d[8]),_=r(d[9]),h=r(d[10]),k=(function(t){function s(){return(0,o.default)(this,s),(0,u.default)(this,(0,n.default)(s).apply(this,arguments))}return(0,f.default)(s,t),(0,l.default)(s,[{key:"render",value:function(){return p.default.createElement("div",{className:"unsupported-desktop-browser"},p.default.createElement("h2",{className:"unsupported-desktop-browser__title"},"It looks like you're using a browser we don't support."),p.default.createElement("p",{className:"unsupported-desktop-browser__description"},"Please try again with the latest version of\xa0",p.default.createElement("a",{className:"unsupported-desktop-browser__link",href:h.CHROME},"Chrome"),"\xa0",this._showFirefox()&&p.default.createElement(p.default.Fragment,null,"or ",p.default.createElement("a",{className:"unsupported-desktop-browser__link",href:h.FIREFOX},"Firefox"))))}},{key:"_showFirefox",value:function(){return(0,c.isBrowsersOptimal)('firefox')}}]),s})(p.Component),w=(0,_.translate)(k);e.default=w},1658,[2,3,4,5,6,9,10,59,1506,726,1659]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SAFARI=e.FIREFOX=e.EDGE=e.CHROMIUM=e.CHROME=void 0;e.CHROME='https://www.google.com/chrome/';e.CHROMIUM='https://www.chromium.org/';e.EDGE='https://www.microsoft.com/en-us/windows/microsoft-edge';e.FIREFOX='https://www.getfirefox.com/';e.SAFARI='https://support.apple.com/downloads/safari'},1659,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1660,[1661,1699]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BlankPage",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"WelcomePage",{enumerable:!0,get:function(){return u.default}});var n=t(r(d[1])),u=t(r(d[2]))},1661,[3,1662,1664]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(d[2])),l=n(r(d[3])),u=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),s=t(r(d[7])),p=r(d[8]),y=r(d[9]),v=r(d[10]),h=r(d[11]),_=(r(d[12]),r(d[13])),k=n(r(d[14])),C=(function(t){function n(){return(0,o.default)(this,n),(0,u.default)(this,(0,c.default)(n).apply(this,arguments))}return(0,f.default)(n,t),(0,l.default)(n,[{key:"componentDidMount",value:function(){this.props.dispatch((0,_.destroyLocalTracks)())}},{key:"render",value:function(){var t=this.props._styles;return s.default.createElement(p.View,{style:[k.default.blankPageWrapper,t.loadingOverlayWrapper]},s.default.createElement(v.LoadingIndicator,{color:t.indicatorColor,size:"large"}))}}]),n})(s.Component);var L=(0,h.connect)(function(t){return{_styles:y.ColorSchemeRegistry.get(t,'LoadConfigOverlay')}})(C);e.default=L},1662,[2,3,4,5,6,9,10,59,15,438,539,443,522,903,1663]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SWITCH_UNDER_COLOR=e.SWITCH_THUMB_COLOR=e.SIDEBAR_AVATAR_SIZE=e.PLACEHOLDER_TEXT_COLOR=void 0;var t=o(r(d[1])),n=r(d[2]),l=r(d[3]);e.PLACEHOLDER_TEXT_COLOR='rgba(255, 255, 255, 0.5)';e.SIDEBAR_AVATAR_SIZE=100;var c=l.ColorPalette.blueHighlight;e.SWITCH_THUMB_COLOR=c;e.SWITCH_UNDER_COLOR='rgba(0, 0, 0, 0.4)';var C=l.ColorPalette.white,u={audioVideoSwitch:{marginHorizontal:5},audioVideoSwitchContainer:{alignItems:'center',flexDirection:'row'},blankPageWrapper:(0,t.default)({},n.StyleSheet.absoluteFillObject,{alignItems:'center',flex:1,flexDirection:'column',justifyContent:'center'}),button:{backgroundColor:l.ColorPalette.blue,borderColor:l.ColorPalette.blue,borderRadius:4,borderWidth:1,height:30,justifyContent:'center',paddingHorizontal:20},buttonText:{alignSelf:'center',color:l.ColorPalette.white,fontSize:14},displayName:{color:l.ColorPalette.white,fontSize:16,marginTop:l.BoxModel.margin,textAlign:'center'},enterRoomText:{color:C,fontSize:18,marginBottom:l.BoxModel.margin},header:{justifyContent:'space-between'},hintButtonContainer:{flexDirection:'row',justifyContent:'center'},hintContainer:{flexDirection:'column',overflow:'hidden'},hintText:{textAlign:'center'},hintTextContainer:{marginBottom:2*l.BoxModel.margin},itemContainer:{flexDirection:'column',paddingTop:10},joinControls:{padding:l.BoxModel.padding},messageContainer:{backgroundColor:l.ColorPalette.white,borderColor:l.ColorPalette.white,borderRadius:4,borderWidth:1,marginVertical:5,paddingHorizontal:l.BoxModel.padding,paddingVertical:2*l.BoxModel.padding},localVideoTrackUnderlay:{alignSelf:'stretch',backgroundColor:'transparent',flex:1},page:{flex:1,flexDirection:'column'},reducedUIContainer:{alignItems:'center',backgroundColor:l.ColorPalette.blue,flex:1,justifyContent:'center'},reducedUIText:{color:C,fontSize:12},roomContainer:{alignSelf:'stretch',flexDirection:'column'},sideBar:{width:250},sideBarBody:{backgroundColor:l.ColorPalette.white,flex:1},sideBarHeader:{alignItems:'center',flexDirection:'column',height:150,justifyContent:'center',padding:l.BoxModel.padding},sideBarItem:{padding:13},sideBarItemButtonContainer:{alignItems:'center',flexDirection:'row',justifyContent:'flex-start'},sideBarItemIcon:{color:l.ColorPalette.blueHighlight,fontSize:20,marginRight:15},sideBarItemText:{color:l.ColorPalette.black,fontWeight:'bold'},switchLabel:{paddingHorizontal:3},textInput:{backgroundColor:'transparent',borderColor:l.ColorPalette.white,borderRadius:4,borderWidth:1,color:C,fontSize:23,height:50,padding:4,textAlign:'center'},title:{color:C,fontSize:25,marginBottom:2*l.BoxModel.margin,textAlign:'center'},insecureRoomNameWarningContainer:{alignItems:'center',flexDirection:'row',paddingHorizontal:5},insecureRoomNameWarningIcon:{color:l.ColorPalette.warning,fontSize:24,marginRight:10},insecureRoomNameWarningText:{color:l.ColorPalette.warning,flex:1},welcomePage:{backgroundColor:l.ColorPalette.blue,overflow:'hidden'}};e.default=u},1663,[3,53,15,522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),o=n(r(d[3])),u=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),f=n(r(d[7])),h=n(r(d[8])),y=n(r(d[9])),p=n(r(d[10])),_=r(d[11]),E=r(d[12]),x=r(d[13]),C=r(d[14]),v=r(d[15]),w=r(d[16]),F=r(d[17]),T=r(d[18]),b=r(d[19]),S=r(d[20]),B=r(d[21]),I=r(d[22]),k=r(d[23]),V=r(d[24]),R=r(d[25]),A=n(r(d[26])),H=n(r(d[27])),P=n(r(d[28])),L=n(r(d[29])),W=t(r(d[30])),D=(function(t){function n(t){var l;return(0,o.default)(this,n),(l=(0,s.default)(this,(0,c.default)(n).call(this,t))).state._fieldFocused=!1,l.state.hintBoxAnimation=new _.Animated.Value(0),l._onFieldFocusChange=l._onFieldFocusChange.bind((0,y.default)((0,y.default)(l))),l._onShowSideBar=l._onShowSideBar.bind((0,y.default)((0,y.default)(l))),l._renderHintBox=l._renderHintBox.bind((0,y.default)((0,y.default)(l))),l._onFieldBlur=l._onFieldFocusChange.bind((0,y.default)((0,y.default)(l)),!1),l._onFieldFocus=l._onFieldFocusChange.bind((0,y.default)((0,y.default)(l)),!0),l}return(0,h.default)(n,t),(0,u.default)(n,[{key:"componentDidMount",value:function(){(0,f.default)((0,c.default)(n.prototype),"componentDidMount",this).call(this),this._updateRoomname();var t=this.props.dispatch;this.props._settings.startAudioOnly?t((0,S.destroyLocalTracks)()):navigator.permissions.query({name:'camera'}).then(function(n){'granted'===n&&t((0,S.createDesiredLocalTracks)(w.MEDIA_TYPE.VIDEO))})}},{key:"render",value:function(){return this._renderFullUI()}},{key:"_doRenderInsecureRoomNameWarning",value:function(){return p.default.createElement(_.View,{style:[W.default.messageContainer,W.default.insecureRoomNameWarningContainer]},p.default.createElement(v.Icon,{src:v.IconWarning,style:W.default.insecureRoomNameWarningIcon}),p.default.createElement(F.Text,{style:W.default.insecureRoomNameWarningText},this.props.t('security.insecureRoomNameWarning')))}},{key:"_getHintBoxStyle",value:function(){return[W.default.messageContainer,W.default.hintContainer,{opacity:this.state.hintBoxAnimation}]}},{key:"_onFieldFocusChange",value:function(t){var n=this;t&&this.setState({_fieldFocused:!0}),_.Animated.timing(this.state.hintBoxAnimation,{duration:300,toValue:t?1:0}).start(function(l){return l.finished&&!t&&n.setState({_fieldFocused:!1})})}},{key:"_onShowSideBar",value:function(){_.Keyboard.dismiss(),this.props.dispatch((0,V.setSideBarVisible)(!0))}},{key:"_renderHintBox",value:function(){if(this.state._fieldFocused){var t=this.props.t;return p.default.createElement(_.Animated.View,{style:this._getHintBoxStyle()},p.default.createElement(_.View,{style:W.default.hintTextContainer},p.default.createElement(F.Text,{style:W.default.hintText},t('welcomepage.roomnameHint'))),p.default.createElement(_.View,{style:W.default.hintButtonContainer},this._renderJoinButton()))}return null}},{key:"_renderJoinButton",value:function(){var t,n=this.props.t;return t=this.state.joining?p.default.createElement(_.View,null,p.default.createElement(F.LoadingIndicator,{color:W.default.buttonText.color,size:"small"})):p.default.createElement(F.Text,{style:W.default.buttonText},this.props.t('welcomepage.join')),p.default.createElement(_.TouchableHighlight,{accessibilityLabel:n('welcomepage.accessibilityLabel.join'),onPress:this._onJoin,style:W.default.button,underlayColor:b.ColorPalette.white},t)}},{key:"_renderFullUI",value:function(){var t=this.props,n=t._headerStyles,l=t.t;return p.default.createElement(A.default,{style:W.default.welcomePage},p.default.createElement(_.View,{style:n.page},p.default.createElement(F.Header,{style:W.default.header},p.default.createElement(_.TouchableOpacity,{onPress:this._onShowSideBar},p.default.createElement(v.Icon,{src:v.IconMenu,style:n.headerButtonIcon})),p.default.createElement(H.default,null)),p.default.createElement(_.SafeAreaView,{style:W.default.roomContainer},p.default.createElement(_.View,{style:W.default.joinControls},p.default.createElement(F.Text,{style:W.default.enterRoomText},l('welcomepage.roomname')),p.default.createElement(_.TextInput,{accessibilityLabel:l('welcomepage.a
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})},1665,[1666,1668]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"HelpView",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1666,[3,1667]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=u(r(d[2])),l=u(r(d[3])),f=u(r(d[4])),o=u(r(d[5])),c=u(r(d[6])),s=t(r(d[7])),h=u(r(d[8])),p=r(d[9]),_=r(d[10]),v=r(d[11]),b='https://web-cdn.jitsi.net/faq/meet-faq.html',y=(function(t){function u(){return(0,n.default)(this,u),(0,f.default)(this,(0,o.default)(u).apply(this,arguments))}return(0,c.default)(u,t),(0,l.default)(u,[{key:"render",value:function(){return s.default.createElement(p.JitsiModal,{headerProps:{headerLabelKey:'helpView.header'},modalId:v.HELP_VIEW_MODAL_ID},s.default.createElement(h.default,{source:{uri:this.props._url}}))}}]),u})(s.PureComponent);var E=(0,_.connect)(function(t){return{_url:t['features/base/config'].helpCentreURL||b}})(y);e.default=E},1667,[2,3,4,5,6,9,10,59,989,1192,443,1668]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.HELP_VIEW_MODAL_ID=void 0;e.HELP_VIEW_MODAL_ID='helpView'},1668,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=r(d[1]);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var u=r(d[2]);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var o=r(d[3]);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var c=r(d[4]);Object.keys(c).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})})},1669,[1670,1674,1675,1679,1680]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.openSettingsDialog=function(t){return(0,n.openDialog)(c.SettingsDialog,{defaultTab:t})},e.submitMoreTab=function(n){return function(s,c){var P=(0,f.getMoreTabProps)(c());n.followMeEnabled!==P.followMeEnabled&&s((0,t.setFollowMe)(n.followMeEnabled));var S,b=n.showPrejoinPage;b!==P.showPrejoinPage&&(b&&(null==(S=c()['features/prejoin'])?void 0:S.showPrejoin)&&s((0,l.setPrejoinPageVisibility)(!1)),s((0,u.updateSettings)({userSelectedSkipPrejoin:!b})));n.startAudioMuted===P.startAudioMuted&&n.startVideoMuted===P.startVideoMuted||s((0,t.setStartMutedPolicy)(n.startAudioMuted,n.startVideoMuted)),n.currentLanguage!==P.currentLanguage&&o.i18next.changeLanguage(n.currentLanguage)}},e.submitProfileTab=function(t){return function(n,o){var u=(0,f.getProfileTabProps)(o());t.displayName!==u.displayName&&APP.conference.changeLocalDisplayName(t.displayName),t.email!==u.email&&APP.conference.changeLocalEmail(t.email)}},e.toggleAudioSettings=function(){return function(t,n){var o=n()['features/settings'].audioSettingsVisible;t(P(!o))}},e.toggleVideoSettings=function(){return function(t,n){var o=n()['features/settings'].videoSettingsVisible;t(S(!o))}};var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),l=r(d[4]),s=r(d[5]),c=r(d[6]),f=r(d[7]);function P(t){return{type:s.SET_AUDIO_SETTINGS_VISIBILITY,value:t}}function S(t){return{type:s.SET_VIDEO_SETTINGS_VISIBILITY,value:t}}},1670,[1101,531,726,910,1671,1674,1675,1680]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.dialOut=function(t,c){return function(s,l){var f,T,D,N,S,y,_,k;return n.default.async(function(h){for(;;)switch(h.prev=h.next){case 0:return f=l(),T=u.default.v4(),D=(0,o.getDialOutUrl)(f),N=(0,v.getDialOutConferenceUrl)(f),S=(0,v.getFullDialOutNumber)(f),y=(0,v.getDialOutCountry)(f).code.toUpperCase(),_={conferenceUrl:N,countryCode:y,name:S,phoneNumber:S},h.prev=7,h.next=10,n.default.awrap((0,p.executeDialOutRequest)(D,_,T));case 10:s(O(T,t,c)),h.next=20;break;case 13:h.prev=13,h.t0=h.catch(7),k={titleKey:'prejoin.errorDialOut',titleArguments:void 0},h.t0.status&&('validation.failed'===h.t0.messageKey?k.titleKey='prejoin.errorValidation':(k.titleKey='prejoin.errorStatusCode',k.titleArguments={status:h.t0.status})),s((0,E.showErrorNotification)(k)),I.default.error('Error dialing out',h.t0),c();case 20:case"end":return h.stop()}},null,this,[[7,13]])}},e.initPrejoin=function(t,u){return function(c){return n.default.async(function(n){for(;;)switch(n.prev=n.next){case 0:c(R(u)),t.forEach(function(t){return c((0,l.trackAdded)(t))});case 2:case"end":return n.stop()}},null,this)}},e.joinConference=_,e.joinConferenceWithoutAudio=function(){return function(t,u){var c,o,s;return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:if(o=u()['features/base/tracks'],!(s=null==(c=(0,l.getLocalAudioTrack)(o))?void 0:c.jitsiTrack)){f.next=5;break}return f.next=5,n.default.awrap(t((0,l.replaceLocalTrack)(s,null)));case 5:t(_({startSilent:!0}));case 6:case"end":return f.stop()}},null,this)}},e.makePrecallTest=function(t){return function(u){var c;return n.default.async(function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,n.default.awrap(JitsiMeetJS.precallTest.init(t));case 2:return o.next=4,n.default.awrap(JitsiMeetJS.precallTest.execute());case 4:c=o.sent,u(h(c));case 6:case"end":return o.stop()}},null,this)}},e.openDialInPage=function(){return function(t,n){var u=n(),o=u['features/base/connection'].locationURL,s=(0,c.getRoomName)(u),l=(0,p.getDialInfoPageURL)(s,o);(0,f.openURLInBrowser)(l,!0)}},e.replaceAudioTrackById=function(t){return function(u,c){var o,f,p,E;return n.default.async(function(T){for(;;)switch(T.prev=T.next){case 0:return T.prev=0,f=c()['features/base/tracks'],T.next=4,n.default.awrap((0,s.createLocalTrack)('audio',t));case 4:p=T.sent,E=null==(o=(0,l.getLocalAudioTrack)(f))?void 0:o.jitsiTrack,u((0,l.replaceLocalTrack)(E,p)),T.next=13;break;case 9:T.prev=9,T.t0=T.catch(0),u(k('prejoin.audioTrackError')),I.default.log('Error replacing audio track',T.t0);case 13:case"end":return T.stop()}},null,this,[[0,9]])}},e.replaceVideoTrackById=function(t){return function(u,c){var o,f,p,E;return n.default.async(function(T){for(;;)switch(T.prev=T.next){case 0:return T.prev=0,f=c()['features/base/tracks'],T.next=4,n.default.awrap((0,s.createLocalTrack)('video',t));case 4:p=T.sent,E=null==(o=(0,l.getLocalVideoTrack)(f))?void 0:o.jitsiTrack,u((0,l.replaceLocalTrack)(E,p)),T.next=13;break;case 9:T.prev=9,T.t0=T.catch(0),u(k('prejoin.videoTrackError')),I.default.log('Error replacing video track',T.t0);case 13:case"end":return T.stop()}},null,this,[[0,9]])}},e.setDeviceStatusOk=function(t){return{type:T.SET_DEVICE_STATUS,value:{deviceStatusText:t,deviceStatusType:'ok'}}},e.setDeviceStatusWarning=k,e.setDialOutCountry=function(t){return{type:T.SET_DIALOUT_COUNTRY,value:t}},e.setPrejoinDisplayNameRequired=function(){return{type:T.SET_PREJOIN_DISPLAY_NAME_REQUIRED}},e.setDialOutNumber=function(t){return{type:T.SET_DIALOUT_NUMBER,value:t}},e.setSkipPrejoin=function(t){return{type:T.SET_SKIP_PREJOIN,value:t}},e.setJoinByPhoneDialogVisiblity=function(t){return{type:T.SET_JOIN_BY_PHONE_DIALOG_VISIBLITY,value:t}},e.setPrecallTestResults=h,e.setPrejoinDeviceErrors=R,e.setPrejoinPageVisibility=function(t){return{type:T.SET_PREJOIN_PAGE_VISIBILITY,value:t}};var n=t(r(d[1])),u=t(r(d[2])),c=r(d[3]),o=r(d[4]),s=r(d[5]),l=r(d[6]),f=r(d[7]),p=r(d[8]),E=r(d[9]),T=r(d[10]),v=r(d[11]),I=t(r(d[12])),D={INITIATED:'presenceStatus.calling',RINGING:
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_PREJOIN_PAGE_VISIBILITY=e.SET_PREJOIN_DEVICE_ERRORS=e.SET_PREJOIN_AUDIO_MUTED=e.SET_PREJOIN_AUDIO_DISABLED=e.SET_PRECALL_TEST_RESULTS=e.SET_JOIN_BY_PHONE_DIALOG_VISIBLITY=e.SET_DIALOUT_STATUS=e.SET_DIALOUT_NUMBER=e.SET_DIALOUT_COUNTRY=e.SET_PREJOIN_DISPLAY_NAME_REQUIRED=e.SET_SKIP_PREJOIN=e.SET_DEVICE_STATUS=e.PREJOIN_START_CONFERENCE=void 0;e.PREJOIN_START_CONFERENCE='PREJOIN_START_CONFERENCE';e.SET_DEVICE_STATUS='SET_DEVICE_STATUS';e.SET_SKIP_PREJOIN='SET_SKIP_PREJOIN';e.SET_PREJOIN_DISPLAY_NAME_REQUIRED='SET_PREJOIN_DISPLAY_NAME_REQUIRED';e.SET_DIALOUT_COUNTRY='SET_DIALOUT_COUNTRY';e.SET_DIALOUT_NUMBER='SET_DIALOUT_NUMBER';e.SET_DIALOUT_STATUS='SET_DIALOUT_STATUS';e.SET_JOIN_BY_PHONE_DIALOG_VISIBLITY='SET_JOIN_BY_PHONE_DIALOG_VISIBLITY';e.SET_PRECALL_TEST_RESULTS='SET_PRECALL_TEST_RESULTS';e.SET_PREJOIN_AUDIO_DISABLED='SET_PREJOIN_AUDIO_DISABLED';e.SET_PREJOIN_AUDIO_MUTED='SET_PREJOIN_AUDIO_MUTED';e.SET_PREJOIN_DEVICE_ERRORS='SET_PREJOIN_DEVICE_ERRORS';e.SET_PREJOIN_PAGE_VISIBILITY='SET_PREJOIN_PAGE_VISIBILITY'},1672,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/prejoin');e.default=t},1673,[495]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_VIDEO_SETTINGS_VISIBILITY=e.SET_AUDIO_SETTINGS_VISIBILITY=void 0;e.SET_AUDIO_SETTINGS_VISIBILITY='SET_AUDIO_SETTINGS_VISIBILITY';e.SET_VIDEO_SETTINGS_VISIBILITY='SET_VIDEO_SETTINGS_VISIBILITY'},1674,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1675,[1676]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1676,[1677]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"SettingsView",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1677,[3,1678]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),s=t(r(d[3])),o=t(r(d[4])),u=t(r(d[5])),h=t(r(d[6])),f=t(r(d[7])),c=t(r(d[8])),p=t(r(d[9])),v=r(d[10]),_=r(d[11]),b=r(d[12]),C=r(d[13]),S=r(d[14]),R=r(d[15]),w=r(d[16]),y=t(r(d[17])),E=t(r(d[18])),V=v.NativeModules.AppInfo,L=(function(t){function l(t){var s;(0,n.default)(this,l),s=(0,o.default)(this,(0,u.default)(l).call(this,t));var h=t._settings||{},f=h.disableCallIntegration,p=h.disableCrashReporting,v=h.disableP2P,_=h.displayName,b=h.email,C=h.serverURL,S=h.startWithAudioMuted,R=h.startWithVideoMuted;return s.state={disableCallIntegration:f,disableCrashReporting:p,disableP2P:v,displayName:_,email:b,serverURL:C,showAdvanced:!1,startWithAudioMuted:S,startWithVideoMuted:R},s._onBlurServerURL=s._onBlurServerURL.bind((0,c.default)((0,c.default)(s))),s._onClose=s._onClose.bind((0,c.default)((0,c.default)(s))),s._onDisableCallIntegration=s._onDisableCallIntegration.bind((0,c.default)((0,c.default)(s))),s._onDisableCrashReporting=s._onDisableCrashReporting.bind((0,c.default)((0,c.default)(s))),s._onDisableP2P=s._onDisableP2P.bind((0,c.default)((0,c.default)(s))),s._onShowAdvanced=s._onShowAdvanced.bind((0,c.default)((0,c.default)(s))),s._setURLFieldReference=s._setURLFieldReference.bind((0,c.default)((0,c.default)(s))),s._showURLAlert=s._showURLAlert.bind((0,c.default)((0,c.default)(s))),s}return(0,f.default)(l,t),(0,s.default)(l,[{key:"render",value:function(){var t=this.state,l=t.displayName,n=t.email,s=t.serverURL,o=t.startWithAudioMuted,u=t.startWithVideoMuted;return p.default.createElement(b.JitsiModal,{headerProps:{headerLabelKey:'settingsView.header'},modalId:S.SETTINGS_VIEW_ID,onClose:this._onClose},p.default.createElement(v.ScrollView,null,p.default.createElement(E.default,{label:"settingsView.profileSection"}),p.default.createElement(y.default,{fieldSeparator:!0,label:"settingsView.displayName",layout:"column"},p.default.createElement(v.TextInput,{autoCorrect:!1,onChangeText:this._onChangeDisplayName,placeholder:"John Doe",textContentType:'name',value:l})),p.default.createElement(y.default,{label:"settingsView.email",layout:"column"},p.default.createElement(v.TextInput,{autoCapitalize:"none",autoCorrect:!1,keyboardType:'email-address',onChangeText:this._onChangeEmail,placeholder:"email@example.com",textContentType:'emailAddress',value:n})),p.default.createElement(E.default,{label:"settingsView.conferenceSection"}),p.default.createElement(y.default,{fieldSeparator:!0,label:"settingsView.serverURL",layout:"column"},p.default.createElement(v.TextInput,{autoCapitalize:"none",autoCorrect:!1,editable:this.props._serverURLChangeEnabled,keyboardType:'url',onBlur:this._onBlurServerURL,onChangeText:this._onChangeServerURL,placeholder:this.props._serverURL,textContentType:'URL',value:s})),p.default.createElement(y.default,{fieldSeparator:!0,label:"settingsView.startWithAudioMuted"},p.default.createElement(v.Switch,{onValueChange:this._onStartAudioMutedChange,value:o})),p.default.createElement(y.default,{label:"settingsView.startWithVideoMuted"},p.default.createElement(v.Switch,{onValueChange:this._onStartVideoMutedChange,value:u})),p.default.createElement(E.default,{label:"settingsView.buildInfoSection"}),p.default.createElement(y.default,{label:"settingsView.version"},p.default.createElement(v.Text,null,V.version+" build "+V.buildNumber)),p.default.createElement(E.default,{label:"settingsView.advanced"}),this._renderAdvancedSettings()))}},{key:"_onBlurServerURL",value:function(){this._processServerURL(!1)}},{key:"_onChangeDisplayName",value:function(t){(0,h.default)((0,u.default)(l.prototype),"_onChangeDisplayName",this).call(this,t),this.setState({displayName:t})}},{key:"_onChangeEmail",value:function(t){(0,h.default)((0,u.default)(l.prototype),"_onChangeEmail",this).call(this,t),this.setState({email:t})}},{key:"_onChangeServerURL",value:function(t){(0,h.default)((0,u.default)(l.prototype),"_onChangeServerURL",this).call(this,t),this.setState({serverURL:t})}},{key:"_onDisableCallIntegrati
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SETTINGS_VIEW_ID=e.SETTINGS_TABS=void 0;e.SETTINGS_TABS={CALENDAR:'calendar_tab',DEVICES:'devices_tab',MORE:'more_tab',PROFILE:'profile_tab'};e.SETTINGS_VIEW_ID='SETTINGS_VIEW_ID'},1679,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.isSettingEnabled=v,e.isServerURLChangeEnabled=function(t){var n=(0,l.toState)(t);return(0,o.getFeatureFlag)(n,o.SERVER_URL_CHANGE_ENABLED,!0)},e.normalizeUserInputURL=function(t){if(t){t=t.replace(/\s/g,'').toLowerCase();var n=new RegExp('^(\\w+://)?(.+)$'),o=n.exec(t);!o||o[1]&&o[1].startsWith('http')||(t="https://"+o[2]);var c=(0,f.parseStandardURIString)(t);return c.host?c.toString():null}return t},e.shouldShowOnlyDeviceSelection=function(){return 1===interfaceConfig.SETTINGS_SECTIONS.length&&v('devices')},e.getMoreTabProps=function(t){var n=(0,l.toState)(t),o=c.i18next.language||c.DEFAULT_LANGUAGE,s=n['features/base/conference'],f=s.conference,v=s.followMeEnabled,b=s.startAudioMutedPolicy,p=s.startVideoMutedPolicy,E=(0,S.isFollowMeActive)(n),h=interfaceConfig.SETTINGS_SECTIONS||[],T=Boolean(f&&h.includes('moderator')&&(0,u.isLocalParticipantModerator)(n));return{currentLanguage:o,followMeActive:Boolean(f&&E),followMeEnabled:Boolean(f&&v),languages:c.LANGUAGES,showLanguageSettings:h.includes('language'),showModeratorSettings:T,showPrejoinSettings:n['features/base/config'].prejoinPageEnabled,showPrejoinPage:!n['features/base/settings'].userSelectedSkipPrejoin,startAudioMuted:Boolean(f&&b),startVideoMuted:Boolean(f&&p)}},e.getProfileTabProps=function(t){var n=(0,l.toState)(t),o=n['features/base/conference'],c=o.authEnabled,s=o.authLogin,f=o.conference,S=(0,u.getLocalParticipant)(n);return{authEnabled:Boolean(f&&c),authLogin:s,displayName:S.name,email:S.email}},e.createLocalVideoTracks=function(t){return Promise.all(t.map(function(t){return(0,s.createLocalTrack)('video',t).then(function(n){return{jitsiTrack:n,deviceId:t}}).catch(function(){return{jitsiTrack:null,deviceId:t,error:'deviceSelection.previewUnavailable'}})}))},e.createLocalAudioTracks=function(t){return Promise.all(t.map(function(t){var o,c,u,l;return n.default.async(function(f){for(;;)switch(f.prev=f.next){case 0:return o=t.deviceId,c=t.label,u=null,l=!1,f.prev=3,f.next=6,n.default.awrap((0,s.createLocalTrack)('audio',o));case 6:u=f.sent,f.next=12;break;case 9:f.prev=9,f.t0=f.catch(3),l=!0;case 12:return f.abrupt("return",{deviceId:o,hasError:l,jitsiTrack:u,label:c});case 13:case"end":return f.stop()}},null,this,[[3,9]])}))},e.getAudioSettingsVisibility=function(t){return t['features/settings'].audioSettingsVisible},e.getVideoSettingsVisibility=function(t){return t['features/settings'].videoSettingsVisible};var n=t(r(d[1])),o=r(d[2]),c=r(d[3]),s=r(d[4]),u=r(d[5]),l=r(d[6]),f=r(d[7]),S=r(d[8]);function v(t){return interfaceConfig.SETTINGS_SECTIONS.includes(t)}},1680,[3,270,951,726,884,704,443,506,1489]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t){return{_serverURL:(0,h.getDefaultURL)(t),_settings:t['features/base/settings'],_visible:t['features/settings'].visible}},e.AbstractSettingsView=void 0;var n=t(r(d[1])),u=t(r(d[2])),s=t(r(d[3])),o=t(r(d[4])),l=t(r(d[5])),f=t(r(d[6])),_=r(d[7]),h=r(d[8]),S=r(d[9]),p=(function(t){function _(t){var u;return(0,n.default)(this,_),(u=(0,s.default)(this,(0,o.default)(_).call(this,t)))._onChangeDisplayName=u._onChangeDisplayName.bind((0,f.default)((0,f.default)(u))),u._onChangeEmail=u._onChangeEmail.bind((0,f.default)((0,f.default)(u))),u._onChangeServerURL=u._onChangeServerURL.bind((0,f.default)((0,f.default)(u))),u._onStartAudioMutedChange=u._onStartAudioMutedChange.bind((0,f.default)((0,f.default)(u))),u._onStartVideoMutedChange=u._onStartVideoMutedChange.bind((0,f.default)((0,f.default)(u))),u}return(0,l.default)(_,t),(0,u.default)(_,[{key:"_onChangeDisplayName",value:function(t){this._updateSettings({displayName:t})}},{key:"_onChangeEmail",value:function(t){this._updateSettings({email:t})}},{key:"_onChangeServerURL",value:function(t){this._updateSettings({serverURL:t})}},{key:"_onStartAudioMutedChange",value:function(t){this._updateSettings({startWithAudioMuted:t})}},{key:"_onStartVideoMutedChange",value:function(t){this._updateSettings({startWithVideoMuted:t})}},{key:"_updateSettings",value:function(t){this.props.dispatch((0,S.updateSettings)(t))}}]),_})(_.Component);e.AbstractSettingsView=p},1681,[3,4,5,6,9,10,8,59,909,910]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),o=l(r(d[4])),f=l(r(d[5])),s=l(r(d[6])),p=l(r(d[7])),c=t(r(d[8])),y=r(d[9]),h=r(d[10]),_=t(r(d[11])),C=(function(t){function l(t){var n;return(0,u.default)(this,l),n=(0,o.default)(this,(0,f.default)(l).call(this,t)),c.default.Children.only(n.props.children),n._getDefaultFieldProps=n._getDefaultFieldProps.bind((0,p.default)((0,p.default)(n))),n._getRowStyle=n._getRowStyle.bind((0,p.default)((0,p.default)(n))),n}return(0,s.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props,l=t.layout,u=t.t,n=c.default.cloneElement(this.props.children,this._getDefaultFieldProps(this.props.children));return c.default.createElement(y.View,{style:this._getRowStyle()},c.default.createElement(y.View,{style:_.default.fieldLabelContainer},c.default.createElement(y.Text,{style:[_.default.text,_.default.fieldLabelText,'column'===l?_.default.fieldLabelTextColumn:void 0]},u(this.props.label))),c.default.createElement(y.View,{style:_.default.fieldValueContainer},n))}},{key:"_getDefaultFieldProps",value:function(t){if(t&&t.type)switch(t.type.displayName){case'TextInput':return{placeholderTextColor:_.PLACEHOLDER_COLOR,style:[_.default.textInputField,'column'===this.props.layout?_.default.textInputFieldColumn:void 0],underlineColorAndroid:_.ANDROID_UNDERLINE_COLOR}}return{}}},{key:"_getRowStyle",value:function(){var t=this.props,l=t.fieldSeparator,u=t.layout,n=[_.default.fieldContainer];return l&&n.push(_.default.fieldSeparator),'column'===u&&n.push(_.default.fieldContainerColumn),n}}]),l})(c.Component),v=(0,h.translate)(C);e.default=v},1682,[2,3,4,5,6,9,10,8,59,15,726,1683]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.PLACEHOLDER_COLOR=e.ANDROID_UNDERLINE_COLOR=void 0;var t=r(d[0]);e.ANDROID_UNDERLINE_COLOR='transparent';var l=t.ColorPalette.lightGrey;e.PLACEHOLDER_COLOR=l;var o={fieldContainer:{alignItems:'center',flexDirection:'row',minHeight:65,paddingHorizontal:8},fieldContainerColumn:{alignItems:'flex-start',flexDirection:'column',paddingVertical:3},fieldLabelContainer:{alignItems:'center',flexDirection:'row',marginRight:5},fieldLabelText:{fontSize:17},fieldLabelTextColumn:{fontSize:12},fieldSeparator:{borderBottomWidth:1,borderColor:'rgba(0, 0, 0, 0.1)'},fieldValueContainer:{alignItems:'center',flex:1,flexDirection:'row',justifyContent:'flex-end'},formSectionTitle:{backgroundColor:'rgba(0, 0, 0, 0.1)',padding:5},text:{color:t.ColorPalette.black},textInputField:{color:t.ColorPalette.black,flex:1,fontSize:17,textAlign:'right'},textInputFieldColumn:{backgroundColor:'rgb(245, 245, 245)',borderRadius:8,marginVertical:5,paddingVertical:3,textAlign:'left'}};e.default=o},1683,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var u=l(r(d[2])),n=l(r(d[3])),f=l(r(d[4])),o=l(r(d[5])),s=l(r(d[6])),c=t(r(d[7])),p=r(d[8]),v=r(d[9]),y=l(r(d[10])),h=(function(t){function l(){return(0,u.default)(this,l),(0,f.default)(this,(0,o.default)(l).apply(this,arguments))}return(0,s.default)(l,t),(0,n.default)(l,[{key:"render",value:function(){var t=this.props,l=t.label,u=t.style,n=t.t;return c.default.createElement(p.View,{style:[y.default.formSectionTitle,u]},c.default.createElement(p.Text,null,n(l)))}}]),l})(c.Component),_=(0,v.translate)(h);e.default=_},1684,[2,3,4,5,6,9,10,59,15,726,1683]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.setSideBarVisible=function(_){return{type:t.SET_SIDEBAR_VISIBLE,visible:_}},e.setWelcomePageListsDefaultPage=function(_){return{type:t.SET_WELCOME_PAGE_LISTS_DEFAULT_PAGE,pageIndex:_}};var t=r(d[0])},1685,[1686]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_WELCOME_PAGE_LISTS_DEFAULT_PAGE=e.SET_SIDEBAR_VISIBLE=void 0;e.SET_SIDEBAR_VISIBLE='SET_SIDEBAR_VISIBLE';e.SET_WELCOME_PAGE_LISTS_DEFAULT_PAGE='SET_WELCOME_PAGE_LIST_DEFAULT_PAGE'},1686,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=function(t){return{_calendarEnabled:!1,_enableInsecureRoomNameWarning:t['features/base/config'].enableInsecureRoomNameWarning||!1,_moderatedRoomServiceUrl:t['features/base/config'].moderatedRoomServiceUrl,_recentListEnabled:(0,p.isRecentListEnabled)(),_room:t['features/base/conference'].room,_settings:t['features/base/settings']}},e.AbstractWelcomePage=void 0;var n=t(r(d[1])),o=t(r(d[2])),u=t(r(d[3])),s=t(r(d[4])),l=t(r(d[5])),c=t(r(d[6])),h=r(d[7]),f=r(d[8]),_=r(d[9]),R=r(d[10]),v=t(r(d[11])),p=r(d[12]),b=(function(t){function f(t){var s;return(0,n.default)(this,f),(s=(0,o.default)(this,(0,u.default)(f).call(this,t))).state={animateTimeoutId:void 0,generatedRoomname:'',insecureRoomName:!1,joining:!1,room:'',roomPlaceholder:'',updateTimeoutId:void 0},s._animateRoomnameChanging=s._animateRoomnameChanging.bind((0,c.default)((0,c.default)(s))),s._onJoin=s._onJoin.bind((0,c.default)((0,c.default)(s))),s._onRoomChange=s._onRoomChange.bind((0,c.default)((0,c.default)(s))),s._renderInsecureRoomNameWarning=s._renderInsecureRoomNameWarning.bind((0,c.default)((0,c.default)(s))),s._updateRoomname=s._updateRoomname.bind((0,c.default)((0,c.default)(s))),s}return(0,l.default)(f,t),(0,s.default)(f,null,[{key:"getDerivedStateFromProps",value:function(t,n){return{room:t._room||n.room}}}]),(0,s.default)(f,[{key:"componentDidMount",value:function(){this._mounted=!0,(0,_.sendAnalytics)((0,_.createWelcomePageEvent)('viewed',void 0,{value:1}))}},{key:"componentWillUnmount",value:function(){this._clearTimeouts(),this._mounted=!1}},{key:"_animateRoomnameChanging",value:function(t){var n,o=this,u=this.state.roomPlaceholder+t.substr(0,1);t.length>1&&(n=setTimeout(function(){o._animateRoomnameChanging(t.substring(1,t.length))},70)),this.setState({animateTimeoutId:n,roomPlaceholder:u})}},{key:"_clearTimeouts",value:function(){clearTimeout(this.state.animateTimeoutId),clearTimeout(this.state.updateTimeoutId)}},{key:"_onJoin",value:function(){var t=this,n=this.state.room||this.state.generatedRoomname;if((0,_.sendAnalytics)((0,_.createWelcomePageEvent)('clicked','joinButton',{isGenerated:!this.state.room,room:n})),n){this.setState({joining:!0});var o=function(){return t._mounted&&t.setState({joining:!1})};this.props.dispatch((0,R.appNavigate)(n)).then(o,o)}}},{key:"_onRoomChange",value:function(t){this.setState({room:t,insecureRoomName:this.props._enableInsecureRoomNameWarning&&t&&(0,v.default)(t)})}},{key:"_renderInsecureRoomNameWarning",value:function(){return this.props._enableInsecureRoomNameWarning&&this.state.insecureRoomName?this._doRenderInsecureRoomNameWarning():null}},{key:"_updateRoomname",value:function(){var t=this,n=(0,h.generateRoomWithoutSeparator)(),o=setTimeout(this._updateRoomname,1e4);this._clearTimeouts(),this.setState({generatedRoomname:n,roomPlaceholder:'',updateTimeoutId:o},function(){return t._animateRoomnameChanging(n)})}}]),f})(f.Component);e.AbstractWelcomePage=b},1687,[3,4,6,9,5,10,8,1126,59,905,1100,1647,1442]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),o=l(r(d[4])),c=l(r(d[5])),f=l(r(d[6])),s=t(r(d[7])),p=r(d[8]),k=r(d[9]),h=r(d[10]),v=r(d[11]),T=r(d[12]),V=l(r(d[13])),y=(function(t){function l(){return(0,n.default)(this,l),(0,o.default)(this,(0,c.default)(l).apply(this,arguments))}return(0,f.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){return s.default.createElement(p.View,{style:[V.default.localVideoTrackUnderlay,this.props.style]},s.default.createElement(k.VideoTrack,{videoTrack:this.props._localVideoTrack}),s.default.createElement(h.TintedView,null,this.props.children))}}]),l})(s.Component);var _=(0,v.connect)(function(t){return{_localVideoTrack:(0,T.getLocalVideoTrack)(t['features/base/tracks'])}})(y);e.default=_},1688,[2,3,4,5,6,9,10,59,15,887,539,443,903,1663]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=w,e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),s=n(r(d[5])),c=n(r(d[6])),h=n(r(d[7])),f=t(r(d[8])),y=r(d[9]),_=r(d[10]),S=r(d[11]),O=r(d[12]),C=r(d[13]),A=r(d[14]),v=t(r(d[15])),p=(function(t){function n(t){var u;return(0,l.default)(this,n),(u=(0,o.default)(this,(0,s.default)(n).call(this,t)))._onStartAudioOnlyChange=u._onStartAudioOnlyChange.bind((0,h.default)((0,h.default)(u))),u._onStartAudioOnlyFalse=u._onStartAudioOnlyChangeFn(!1),u._onStartAudioOnlyTrue=u._onStartAudioOnlyChangeFn(!0),u}return(0,c.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props,n=t.t,l=t._headerStyles,u=t._settings;return f.default.createElement(y.View,{style:v.default.audioVideoSwitchContainer},f.default.createElement(y.TouchableWithoutFeedback,{onPress:this._onStartAudioOnlyFalse},f.default.createElement(y.View,{style:v.default.switchLabel},f.default.createElement(O.Text,{style:l.headerText},n('welcomepage.audioVideoSwitch.video')))),f.default.createElement(y.Switch,{onValueChange:this._onStartAudioOnlyChange,style:v.default.audioVideoSwitch,thumbColor:v.SWITCH_THUMB_COLOR,trackColor:{true:v.SWITCH_UNDER_COLOR},value:u.startAudioOnly}),f.default.createElement(y.TouchableWithoutFeedback,{onPress:this._onStartAudioOnlyTrue},f.default.createElement(y.View,{style:v.default.switchLabel},f.default.createElement(O.Text,{style:l.headerText},n('welcomepage.audioVideoSwitch.audio')))))}},{key:"_onStartAudioOnlyChange",value:function(t){(0,this.props.dispatch)((0,A.updateSettings)({startAudioOnly:t}))}},{key:"_onStartAudioOnlyChangeFn",value:function(t){var n=this;return function(){return n._onStartAudioOnlyChange(t)}}}]),n})(f.Component);function w(t){return{_headerStyles:_.ColorSchemeRegistry.get(t,'Header'),_settings:t['features/base/settings']}}var T=(0,S.translate)((0,C.connect)(w)(p));e.default=T},1689,[2,3,4,5,6,9,10,8,59,15,438,726,539,443,910,1663]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),c=n(r(d[5])),f=n(r(d[6])),s=n(r(d[7])),v=t(r(d[8])),P=r(d[9]),p=r(d[10]),_=r(d[11]),h=r(d[12]),b=(r(d[13]),r(d[14])),S=r(d[15]),L=(function(t){function n(t){var u;return(0,l.default)(this,n),(u=(0,o.default)(this,(0,c.default)(n).call(this,t)))._onSelectPage=u._onSelectPage.bind((0,s.default)((0,s.default)(u))),u}return(0,f.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props,n=t._defaultPage,l=t.t;if(void 0===n)return null;var u=[{component:b.RecentList,icon:p.IconRestore,title:l('welcomepage.recentList')}];return v.default.createElement(_.PagedList,{defaultPage:n,disabled:this.props.disabled,onSelectPage:this._onSelectPage,pages:u})}},{key:"_onSelectPage",value:function(t){this.props.dispatch((0,S.setWelcomePageListsDefaultPage)(t))}}]),n})(v.Component);var y=(0,P.translate)((0,h.connect)(function(t){var n=t['features/welcome'].defaultPage;if(void 0===n){var l=t['features/recent-list'];n=l&&l.length?0:1}return{_calendarEnabled:!1,_defaultPage:n}})(L));e.default=y},1690,[2,3,4,5,6,9,10,8,59,726,548,539,443,1691,1692,1685]);
__d(function(g,r,i,a,m,e,d){},1691,[]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1692,[1693]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"RecentList",{enumerable:!0,get:function(){return n.default}});var n=t(r(d[1]))},1693,[3,1694]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e._mapStateToProps=P,e.default=void 0;var n=t(r(d[1])),o=t(r(d[2])),l=t(r(d[3])),s=t(r(d[4])),u=t(r(d[5])),f=t(r(d[6])),c=t(r(d[7])),_=r(d[8]),p=r(d[9]),h=r(d[10]),v=r(d[11]),D=r(d[12]),I=r(d[13]),L=r(d[14]),b=r(d[15]),y=r(d[16]),S=(function(t){function _(t){var o;return(0,n.default)(this,_),(o=(0,l.default)(this,(0,s.default)(_).call(this,t)))._onDelete=o._onDelete.bind((0,f.default)((0,f.default)(o))),o._onShowDialInInfo=o._onShowDialInInfo.bind((0,f.default)((0,f.default)(o))),o}return(0,u.default)(_,t),(0,o.default)(_,[{key:"render",value:function(){if(!(0,y.isRecentListEnabled)())return null;var t=this.props,n=t.disabled,o=t.t,l=t._defaultServerURL,s=t._recentList,u=(0,y.toDisplayableList)(s,o,l),f=[{backgroundColor:I.ColorPalette.blue,onPress:this._onShowDialInInfo,text:o('welcomepage.info')},{backgroundColor:'red',onPress:this._onDelete,text:o('welcomepage.recentListDelete')}];return c.default.createElement(v.NavigateSectionList,{disabled:n,onPress:this._onPress,renderListEmptyComponent:this._getRenderListEmptyComponent(),sections:u,slideActions:f})}},{key:"_onDelete",value:function(t){this.props.dispatch((0,b.deleteRecentListEntry)(t))}},{key:"_onShowDialInInfo",value:function(t){this.props.dispatch((0,h.setActiveModalId)(L.DIAL_IN_SUMMARY_VIEW_ID,{summaryUrl:t.url}))}}]),_})(t(r(d[17])).default);function P(t){return{_defaultServerURL:(0,_.getDefaultURL)(t),_recentList:t['features/recent-list']}}var R=(0,p.translate)((0,D.connect)(P)(S));e.default=R},1694,[3,4,5,6,9,10,8,59,909,726,1192,539,443,522,1201,1440,1442,1695]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1])),l=t(r(d[2])),s=t(r(d[3])),u=t(r(d[4])),c=t(r(d[5])),o=t(r(d[6])),f=t(r(d[7])),p=r(d[8]),v=r(d[9]),y=r(d[10]),_=t(r(d[11])),h=(function(t){function h(t){var l;return(0,n.default)(this,h),(l=(0,s.default)(this,(0,u.default)(h).call(this,t)))._onPress=l._onPress.bind((0,o.default)((0,o.default)(l))),l}return(0,c.default)(h,t),(0,l.default)(h,[{key:"componentDidMount",value:function(){(0,p.sendAnalytics)((0,p.createRecentSelectedEvent)())}},{key:"_getRenderListEmptyComponent",value:function(){var t=this.props.t;return f.default.createElement(y.Container,{className:"meetings-list-empty",style:_.default.emptyListContainer},f.default.createElement(y.Text,{className:"description",style:_.default.emptyListText},t('welcomepage.recentListEmpty')))}},{key:"_onPress",value:function(t){var n=this.props.dispatch;(0,p.sendAnalytics)((0,p.createRecentClickedEvent)('recent.meeting.tile')),n((0,v.appNavigate)(t))}}]),h})(y.AbstractPage);e.default=h},1695,[3,4,5,6,9,10,8,59,905,1100,539,1696]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).createStyleSheet)({emptyListText:{backgroundColor:'transparent',color:'rgba(255, 255, 255, 0.6)',textAlign:'center'},emptyListContainer:{alignItems:'center',justifyContent:'center',padding:20}});e.default=t},1696,[522]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),s=l(r(d[3])),o=l(r(d[4])),u=l(r(d[5])),c=l(r(d[6])),p=l(r(d[7])),f=t(r(d[8])),_=r(d[9]),v=r(d[10]),S=r(d[11]),h=r(d[12]),I=r(d[13]),y=r(d[14]),E=r(d[15]),b=r(d[16]),H=r(d[17]),B=r(d[18]),P=l(r(d[19])),O=t(r(d[20])),V=(function(t){function l(t){var s;return(0,n.default)(this,l),(s=(0,o.default)(this,(0,u.default)(l).call(this,t)))._onHideSideBar=s._onHideSideBar.bind((0,p.default)((0,p.default)(s))),s._onOpenHelpPage=s._onOpenHelpPage.bind((0,p.default)((0,p.default)(s))),s._onOpenSettings=s._onOpenSettings.bind((0,p.default)((0,p.default)(s))),s}return(0,c.default)(l,t),(0,s.default)(l,[{key:"render",value:function(){return f.default.createElement(y.SlidingView,{onHide:this._onHideSideBar,position:"left",show:this.props._visible,style:O.default.sideBar},f.default.createElement(y.Header,{style:O.default.sideBarHeader},f.default.createElement(v.Avatar,{participantId:this.props._localParticipantId,size:O.SIDEBAR_AVATAR_SIZE}),f.default.createElement(_.Text,{style:O.default.displayName},this.props._displayName)),f.default.createElement(_.SafeAreaView,{style:O.default.sideBarBody},f.default.createElement(_.ScrollView,{style:O.default.itemContainer},f.default.createElement(P.default,{icon:S.IconSettings,label:"settings.title",onPress:this._onOpenSettings}),f.default.createElement(P.default,{icon:S.IconInfo,label:"welcomepage.terms",url:"https://jitsi.org/meet/terms"}),f.default.createElement(P.default,{icon:S.IconInfo,label:"welcomepage.privacy",url:"https://jitsi.org/meet/privacy"}),f.default.createElement(P.default,{icon:S.IconHelp,label:"welcomepage.getHelp",onPress:this._onOpenHelpPage}))))}},{key:"_onHideSideBar",value:function(){this.props.dispatch((0,B.setSideBarVisible)(!1))}},{key:"_onOpenHelpPage",value:function(){var t=this.props.dispatch;t((0,B.setSideBarVisible)(!1)),t((0,h.setActiveModalId)(b.HELP_VIEW_MODAL_ID))}},{key:"_onOpenSettings",value:function(){var t=this.props.dispatch;t((0,B.setSideBarVisible)(!1)),t((0,h.setActiveModalId)(H.SETTINGS_VIEW_ID))}}]),l})(f.Component);var A=(0,E.connect)(function(t){var l=(0,I.getLocalParticipant)(t),n=null==l?void 0:l.id;return{_displayName:l&&(0,I.getParticipantDisplayName)(t,n),_localParticipantId:n,_visible:t['features/welcome'].sideBarVisible}})(V);e.default=A},1697,[2,3,4,5,6,9,10,8,59,15,544,548,1192,704,539,443,1665,1669,1685,1698,1663]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[2])),u=n(r(d[3])),o=n(r(d[4])),f=n(r(d[5])),s=n(r(d[6])),c=n(r(d[7])),p=t(r(d[8])),y=r(d[9]),v=r(d[10]),h=r(d[11]),_=n(r(d[12])),I=(function(t){function n(t){var u;return(0,l.default)(this,n),(u=(0,o.default)(this,(0,f.default)(n).call(this,t)))._onOpenURL=u._onOpenURL.bind((0,c.default)((0,c.default)(u))),u}return(0,s.default)(n,t),(0,u.default)(n,[{key:"render",value:function(){var t=this.props,n=t.label,l=t.onPress,u=t.t,o='function'==typeof l?l:this._onOpenURL;return p.default.createElement(y.TouchableOpacity,{onPress:o,style:_.default.sideBarItem},p.default.createElement(y.View,{style:_.default.sideBarItemButtonContainer},p.default.createElement(h.Icon,{src:this.props.icon,style:_.default.sideBarItemIcon}),p.default.createElement(y.Text,{style:_.default.sideBarItemText},u(n))))}},{key:"_onOpenURL",value:function(){var t=this.props.url;'string'==typeof t&&y.Linking.openURL(t)}}]),n})(p.Component),L=(0,v.translate)(I);e.default=L},1698,[2,3,4,5,6,9,10,8,59,15,726,548,1663]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isWelcomePageAppEnabled=function(n){if('ReactNative'===navigator.product)return Boolean((0,t.getFeatureFlag)(n,t.WELCOME_PAGE_ENABLED));return!0},e.isWelcomePageUserEnabled=function(t){return'undefined'==typeof APP||(0,n.toState)(t)['features/base/config'].enableWelcomePage};var t=r(d[0]),n=r(d[1])},1699,[951,443]);
__d(function(g,r,i,a,m,e,d){r(d[0]),r(d[1]),r(d[2]),r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8])},1700,[1701,1702,1703,1704,1705,1706,1707,1708,1709]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]);t.ReducerRegistry.register('features/authentication',function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1?arguments[1]:void 0;switch(s.type){case n.CANCEL_LOGIN:return(0,t.assign)(o,{error:void 0,progress:void 0,thenableWithCancel:void 0});case n.STOP_WAIT_FOR_OWNER:return(0,t.assign)(o,{error:void 0,waitForOwnerTimeoutID:void 0});case n.UPGRADE_ROLE_FINISHED:var c=s.thenableWithCancel;if(o.thenableWithCancel===c){var h=s.error,v=s.progress;return(h||1===v)&&(c=void 0),(0,t.assign)(o,{error:h,progress:v||void 0,thenableWithCancel:c})}break;case n.UPGRADE_ROLE_STARTED:return(0,t.assign)(o,{error:void 0,progress:void 0,thenableWithCancel:s.thenableWithCancel});case n.WAIT_FOR_OWNER:return(0,t.assign)(o,{waitForOwnerTimeoutID:s.waitForOwnerTimeoutID})}return o})},1701,[443,1134]);
__d(function(g,r,i,a,m,e,d){var s=r(d[0]),t=r(d[1]),c={devices:[],subscriptions:[]};s.ReducerRegistry.register('features/mobile/audio-mode',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,u=arguments.length>1?arguments[1]:void 0;switch(u.type){case t._SET_AUDIOMODE_DEVICES:var o=u.devices;return(0,s.equals)(n.devices,o)?n:(0,s.set)(n,'devices',o);case t._SET_AUDIOMODE_SUBSCRIPTIONS:return(0,s.set)(n,'subscriptions',u.subscriptions)}return n})},1702,[443,1147]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),p={appState:'active'};n.ReducerRegistry.register('features/background',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case u._SET_APP_STATE_LISTENER:return(0,t.default)({},n,{appStateListener:c.listener});case u.APP_STATE_CHANGED:return(0,t.default)({},n,{appState:c.appState})}return n})},1703,[3,53,443,1151]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=t(r(d[2])),u=t(r(d[3])),c=r(d[4]);(s.default||u.default)&&n.ReducerRegistry.register('features/call-integration',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1?arguments[1]:void 0;switch(s.type){case c._SET_CALL_INTEGRATION_SUBSCRIPTIONS:return(0,n.assign)(t,'subscriptions',s.subscriptions)}return t})},1704,[3,443,1159,1160,1161]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),s=r(d[3]);n.ReducerRegistry.register('features/full-screen',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;switch(u.type){case s._SET_IMMERSIVE_LISTENER:return(0,t.default)({},n,{listener:u.listener})}return n})},1705,[3,53,443,1173]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=r(d[1]);t.ReducerRegistry.register('features/mobile/incoming-call',function(){var l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;switch(n.type){case c.INCOMING_CALL_ANSWERED:case c.INCOMING_CALL_DECLINED:return(0,t.set)(l,'caller',void 0);case c.INCOMING_CALL_RECEIVED:return(0,t.set)(l,'caller',n.caller)}return l})},1706,[443,1177]);
__d(function(g,r,i,a,m,e,d){var s=r(d[0]),n=r(d[1]),t={sessionID:(new Date).getTime()};s.ReducerRegistry.register('features/mobile/watchos',function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t,o=arguments.length>1?arguments[1]:void 0;switch(o.type){case n.SET_CONFERENCE_TIMESTAMP:return(0,s.assign)(c,{conferenceTimestamp:o.conferenceTimestamp});case n.SET_SESSION_ID:return(0,s.assign)(c,{sessionID:o.sessionID,conferenceTimestamp:0});case n.SET_WATCH_REACHABLE:return(0,s.assign)(c,{watchReachable:o.watchReachable});default:return c}})},1707,[443,1186]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),u=r(d[2]),n=r(d[3]);u.ReducerRegistry.register('features/youtube-player',function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,s=o.videoId,v=o.status,c=o.time,f=o.ownerId;switch(o.type){case n.SET_SHARED_VIDEO_STATUS:return(0,t.default)({},u,{videoId:s,status:v,time:c,ownerId:f});default:return u}})},1708,[3,53,443,981]);
__d(function(g,r,i,a,m,e,d){r(d[0]),r(d[1]),r(d[2]),r(d[3]),r(d[4]),r(d[5]),r(d[6]),r(d[7]),r(d[8]),r(d[9]),r(d[10]),r(d[11]),r(d[12]),r(d[13]),r(d[14]),r(d[15]),r(d[16]),r(d[17]),r(d[18]),r(d[19]),r(d[20]),r(d[21]),r(d[22]),r(d[23]),r(d[24]),r(d[25]),r(d[26]),r(d[27]),r(d[28]),r(d[29]),r(d[30]),r(d[31]),r(d[32]),r(d[33]),r(d[34]),r(d[35]),r(d[36]),r(d[37]),r(d[38]),r(d[39]),r(d[40]),r(d[41]),r(d[42]),r(d[43]),r(d[44]),r(d[45]),r(d[46]),r(d[47]),r(d[48])},1709,[1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1277,1725,1726,1727,1728,1729,1731,1732,1733,1734,1735,1737,1739,1740,1741,1743,1745,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1758,1759,1760,1761,1762,1763,1764,1765]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),u=r(d[2]),c=r(d[3]),l={localTracksDuration:{audio:{startedTime:-1,value:0},video:{camera:{startedTime:-1,value:0},desktop:{startedTime:-1,value:0}},conference:{startedTime:-1,value:0}}};u.ReducerRegistry.register('features/analytics',function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case c.UPDATE_LOCAL_TRACKS_DURATION:return(0,t.default)({},u,{localTracksDuration:n.localTracksDuration});default:return u}})},1710,[3,53,443,1237]);
__d(function(g,r,i,a,m,e,d){var p=r(d[0])(r(d[1])),t=r(d[2]),n=r(d[3]);t.ReducerRegistry.register('features/base/app',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;switch(u.type){case n.APP_WILL_MOUNT:var f=u.app;if(t.app!==f)return(0,p.default)({},t,{app:f});break;case n.APP_WILL_UNMOUNT:if(t.app===u.app)return(0,p.default)({},t,{app:void 0})}return t})},1711,[3,53,443,958]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),l={enabled:!1};n.ReducerRegistry.register('features/base/audio-only',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,o=arguments.length>1?arguments[1]:void 0;switch(o.type){case u.SET_AUDIO_ONLY:return(0,t.default)({},n,{enabled:o.audioOnly});default:return n}})},1712,[3,53,443,1145]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),c=r(d[2]),n=r(d[3]);c.ReducerRegistry.register('features/base/color-scheme',function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;switch(o.type){case n.SET_COLOR_SCHEME:return t.default.cloneDeep(o.colorScheme)||c}return c})},1713,[3,445,443,440]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),o=r(d[2]),s=r(d[3]),t=r(d[4]),c=r(d[5]),E=r(d[6]),u=r(d[7]),_={conference:void 0,e2eeSupported:void 0,joining:void 0,leaving:void 0,locked:void 0,membersOnly:void 0,password:void 0,passwordRequired:void 0};function C(n,o){var s=o.authEnabled,t=o.authLogin;return(0,c.assign)(n,{authEnabled:s,authLogin:t})}function v(n,s){var E,u,_,C=s.conference,v=s.error,f=n.conference||n.joining;if(f&&f!==C)return n;switch(v.name){case t.JitsiConferenceErrors.AUTHENTICATION_REQUIRED:E=C;break;case t.JitsiConferenceErrors.CONFERENCE_ACCESS_DENIED:case t.JitsiConferenceErrors.MEMBERS_ONLY_ERROR:u=C;break;case t.JitsiConferenceErrors.PASSWORD_REQUIRED:_=C}return(0,c.assign)(n,{authRequired:E,conference:void 0,e2eeSupported:void 0,error:v,joining:void 0,leaving:void 0,locked:_?o.LOCKED_REMOTELY:void 0,membersOnly:u,password:void 0,passwordRequired:_})}function f(n,s){var t=s.conference,E=t.room&&t.room.locked?o.LOCKED_REMOTELY:void 0;return(0,c.assign)(n,{authRequired:void 0,conference:t,e2eeSupported:t.isE2EESupported(),joining:void 0,membersOnly:void 0,leaving:void 0,locked:E,passwordRequired:void 0})}function N(o,s){var t=s.conference,c=s.type,u=(0,n.default)({},o);for(var _ in o)if(o[_]===t)switch(u[_]=void 0,_){case'conference':case'passwordRequired':delete u.locked,delete u.password}return c===E.CONFERENCE_WILL_LEAVE&&(t!==o.joining&&t!==o.conference||(u.leaving=t)),u}function O(n,o){var s=o.conference;return(0,c.assign)(n,{error:void 0,joining:s})}function l(n,s){var t=s.conference,E=s.locked;return n.conference!==t?n:(0,c.assign)(n,{locked:E?n.locked||o.LOCKED_REMOTELY:void 0,password:E?n.password:void 0})}function R(n,o){return(0,c.set)(n,'p2p',o.p2p)}function T(n,o){return(0,c.set)(n,'desktopSharingEnabled',o.desktopSharingEnabled)}function S(n,s){var t=s.conference,E=s.method,u=s.password;switch(E){case t.join:return(0,c.assign)(n,{joining:n.conference?n.joining:t,locked:o.LOCKED_REMOTELY,password:u});case t.lock:return(0,c.assign)(n,{locked:u?o.LOCKED_LOCALLY:void 0,password:u})}return n}function L(n,o){var s=o.room;return(0,u.isRoomValid)(s)||(s=void 0),(0,c.assign)(n,{error:void 0,room:s})}function p(n,o){return(0,c.set)(n,'isSIPGatewayEnabled',o.isSIPGatewayEnabled)}c.ReducerRegistry.register('features/base/conference',function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case E.AUTH_STATUS_CHANGED:return C(o,t);case E.CONFERENCE_FAILED:return v(o,t);case E.CONFERENCE_JOINED:return f(o,t);case E.CONFERENCE_SUBJECT_CHANGED:return(0,c.set)(o,'subject',t.subject);case E.CONFERENCE_TIMESTAMP_CHANGED:return(0,c.set)(o,'conferenceTimestamp',t.conferenceTimestamp);case E.CONFERENCE_LEFT:case E.CONFERENCE_WILL_LEAVE:return N(o,t);case E.CONFERENCE_WILL_JOIN:return O(o,t);case s.CONNECTION_WILL_CONNECT:return(0,c.set)(o,'authRequired',void 0);case E.LOCK_STATE_CHANGED:return l(o,t);case E.P2P_STATUS_CHANGED:return R(o,t);case E.SET_DESKTOP_SHARING_ENABLED:return T(o,t);case E.SET_FOLLOW_ME:return(0,c.set)(o,'followMeEnabled',t.enabled);case s.SET_LOCATION_URL:return(0,c.set)(o,'room',void 0);case E.SET_PASSWORD:return S(o,t);case E.SET_PENDING_SUBJECT_CHANGE:return(0,c.set)(o,'pendingSubjectChange',t.subject);case E.SET_ROOM:return L(o,t);case E.SET_SIP_GATEWAY_ENABLED:return p(o,t);case E.SET_START_MUTED_POLICY:return(0,n.default)({},o,{startAudioMutedPolicy:t.startAudioMutedPolicy,startVideoMutedPolicy:t.startVideoMutedPolicy})}return o})},1714,[3,53,1589,1112,879,443,1121,1114]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),o=t(r(d[2])),c=t(r(d[3])),l=t(r(d[4])),u=r(d[5]),f=r(d[6]),s=r(d[7]),v={},y={analytics:{},disableAudioLevels:!0,p2p:{disableH264:!1,preferH264:!0},remoteVideoMenu:{}};function p(){return'ReactNative'===navigator.product?y:v}function R(t,n){var o=n.config;o=b(o);var c=l.default.merge({},o,{error:void 0},p());return(0,s._cleanupConfig)(c),(0,u.equals)(t,c)?t:c}function b(t){var l=t,f={analytics:[['analyticsScriptUrls','scriptURLs'],['googleAnalyticsTrackingId','googleAnalyticsTrackingId']]};return Object.keys(f).forEach(function(s){'object'!=typeof t[s]&&(l=(0,u.set)(l,s,{}));var v=f[s],y=Array.isArray(v),p=0;for(v=y?v:v["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var R;if(y){if(p>=v.length)break;R=v[p++]}else{if((p=v.next()).done)break;R=p.value}var b=R,L=(0,c.default)(b,2),_=L[0],A=L[1];if(_ in l&&!(A in l[s])){var O=l[_];l===t&&(l=(0,o.default)({},l)),delete l[_],l[s]=(0,o.default)({},l[s],(0,n.default)({},A,O))}}}),l}function L(t,n){var o=n.config,c=l.default.merge({},t,o);return(0,s._cleanupConfig)(c),(0,u.equals)(t,c)?t:c}u.ReducerRegistry.register('features/base/config',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p(),n=arguments.length>1?arguments[1]:void 0;switch(n.type){case f.UPDATE_CONFIG:return L(t,n);case f.CONFIG_WILL_LOAD:return{error:void 0,locationURL:n.locationURL};case f.LOAD_CONFIG_ERROR:if(t.locationURL===n.locationURL)return{error:n.error};break;case f.SET_CONFIG:return R(t,n)}return t})},1715,[3,54,53,25,445,443,922,924]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),o=r(d[1]),t=r(d[2]),c=r(d[3]);function s(n,o){var c=o.connection;return N(n)!==c?n:(0,t.assign)(n,{connecting:void 0,connection:void 0,timeEstablished:void 0})}function u(n,o){var c=o.connection,s=o.timeEstablished;return(0,t.assign)(n,{connecting:void 0,connection:c,error:void 0,passwordRequired:void 0,timeEstablished:s})}function v(n,c){var s=c.connection,u=c.error,v=N(n);return v&&v!==s?n:(0,t.assign)(n,{connecting:void 0,connection:void 0,error:u,passwordRequired:u.name===o.JitsiConnectionErrors.PASSWORD_REQUIRED?s:void 0})}function E(n,o){var c=o.connection;return(0,t.assign)(n,{connecting:c,connection:void 0,error:void 0,passwordRequired:void 0,timeEstablished:void 0})}function N(n){return n.connection||n.connecting}function O(n,o){var c=o.locationURL;return(0,t.set)(n,'locationURL',c)}function C(n){return(0,t.assign)(n,{error:void 0,passwordRequired:void 0})}t.ReducerRegistry.register('features/base/connection',function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case c.CONNECTION_DISCONNECTED:return s(o,t);case c.CONNECTION_ESTABLISHED:return u(o,t);case c.CONNECTION_FAILED:return v(o,t);case c.CONNECTION_WILL_CONNECT:return E(o,t);case c.SET_LOCATION_URL:return O(o,t);case n.SET_ROOM:return C(o)}return o})},1716,[1101,879,443,1117]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0]),n=r(d[1]);o.ReducerRegistry.register('features/base/dialog',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case n.HIDE_DIALOG:var s=c.component;if(void 0===s||t.component===s)return(0,o.assign)(t,{component:void 0,componentProps:void 0,rawDialog:!1});break;case n.OPEN_DIALOG:return(0,o.assign)(t,{component:c.component,componentProps:c.componentProps,rawDialog:c.rawDialog})}return t})},1717,[443,533]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),s=r(d[2]),u=r(d[3]),n={};s.ReducerRegistry.register('features/base/flags',function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n,f=arguments.length>1?arguments[1]:void 0;switch(f.type){case u.UPDATE_FLAGS:var l=t.default.merge({},s,f.flags);return t.default.isEqual(s,l)?s:l}return s})},1718,[3,445,443,953]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),u=t(r(d[1])),s=t(r(d[2])),n=r(d[3]),c=r(d[4]),f={isGuest:!0};n.ReducerRegistry.register('features/base/jwt',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,l=arguments.length>1?arguments[1]:void 0;switch(l.type){case c.SET_JWT:l.type;var v=(0,s.default)(l,["type"]),o=(0,u.default)({},f,v);return(0,n.equals)(t,o)?t:o}return t})},1719,[3,53,55,443,1253]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_STATE=void 0;var t=r(d[0]),n=r(d[1]),s=r(d[2]),o=['alpha.jitsi.net','beta.meet.jit.si','meet.jit.si','8x8.vc'];e.DEFAULT_STATE=o;function u(t,n){var s=Array.isArray(t)?t:[];if(Array.isArray(n)){s=Array.from(t);var o=n,u=Array.isArray(o),f=0;for(o=u?o:o["function"==typeof Symbol?Symbol.iterator:"@@iterator"]();;){var y;if(u){if(f>=o.length)break;y=o[f++]}else{if((f=o.next()).done)break;y=f.value}var A=y;A=A.toLowerCase(),!s.includes(A)&&s.push(A)}}return s}n.PersistenceRegistry.register("features/base/known-domains"),n.ReducerRegistry.register("features/base/known-domains",function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,f=arguments.length>1?arguments[1]:void 0;switch(f.type){case s.ADD_KNOWN_DOMAINS:return u(n,f.knownDomains);case t.APP_WILL_MOUNT:return u(n,o);default:return n}})},1720,[958,443,921]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]),n=r(d[2]);function u(t,u){var c=u.config;return(0,s.set)(t,'lastNLimits',(0,n.validateLastNLimits)(c.lastNLimits))}s.ReducerRegistry.register('features/base/lastn',function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;switch(n.type){case t.SET_CONFIG:return u(s,n)}return s})},1721,[917,443,1265]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),I={};n.ReducerRegistry.register('features/base/lib-jitsi-meet',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I,s=arguments.length>1?arguments[1]:void 0;switch(s.type){case u.LIB_DID_DISPOSE:return I;case u.LIB_DID_INIT:return(0,t.default)({},n,{initError:void 0,initialized:!0});case u.LIB_INIT_ERROR:return(0,t.default)({},n,{initError:s.error,initialized:!1});default:return n}})},1722,[3,53,443,883]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),o=r(d[2]),n=r(d[3]),c={config:r(d[4]),logCollector:void 0};function l(n,l){var u=(0,t.default)({},c.config,l.config);return(0,o.equals)(n.config,u)?n:(0,t.default)({},n,{config:u})}function u(t,n){return(0,o.set)(t,'logCollector',n.logCollector)}o.ReducerRegistry.register('features/base/logging',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,o=arguments.length>1?arguments[1]:void 0;switch(o.type){case n.SET_LOGGING_CONFIG:return l(t,o);case n.SET_LOG_COLLECTOR:return u(t,o);default:return t}})},1723,[3,53,443,1270,1724]);
__d(function(g,r,i,a,m,e,d){'object'==typeof m&&'object'==typeof e&&(m.exports={defaultLogLevel:'trace','modules/RTC/TraceablePeerConnection.js':'info','modules/statistics/CallStats.js':'info','modules/xmpp/strophe.util.js':'log'})},1724,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),o=r(d[2]),l=r(d[3]);o.ReducerRegistry.register('features/base/modal',function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;switch(n.type){case l.SET_ACTIVE_MODAL_ID:return(0,t.default)({},o,{activeModalId:n.activeModalId,modalProps:n.modalProps})}return o})},1725,[3,53,443,1194]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),l=r(d[2]),s={isOnline:!0};n.ReducerRegistry.register(l.STORE_NAME,function(){var l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,u=arguments.length>1?arguments[1]:void 0;switch(u.type){case t.SET_NETWORK_INFO:return(0,n.assign)(l,{isOnline:u.isOnline,networkType:u.networkType,cellularGeneration:u.cellularGeneration,details:u.details});case t._STORE_NETWORK_INFO_CLEANUP:return(0,n.assign)(l,{_cleanup:u.cleanup});default:return l}})},1726,[443,1236,882]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),c=n(r(d[2])),A=r(d[3]),o=r(d[4]),T=r(d[5]),l=['conference','id','local','dominantSpeaker','pinned'];function I(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case o.DOMINANT_SPEAKER_CHANGED:return(0,A.set)(n,'dominantSpeaker',n.id===c.participant.id);case o.PARTICIPANT_ID_CHANGED:var I=c.conference;if(n.id===c.oldValue&&n.conference===I&&(I||n.local))return(0,t.default)({},n,{id:c.newValue});break;case o.SET_LOADABLE_AVATAR_URL:case o.PARTICIPANT_UPDATED:var s=c.participant,P=s.id,p=s.local;if(!P&&p&&(P=T.LOCAL_PARTICIPANT_DEFAULT_ID),n.id===P){var _=(0,t.default)({},n);for(var u in s)s.hasOwnProperty(u)&&-1===l.indexOf(u)&&(_[u]=s[u]);return _}break;case o.PIN_PARTICIPANT:return(0,A.set)(n,'pinned',n.id===c.participant.id)}return n}function s(n){var t=n.participant,c=t.avatarID,A=t.avatarURL,o=t.botType,l=t.connectionStatus,I=t.dominantSpeaker,s=t.email,P=t.isFakeParticipant,p=t.isJigasi,_=t.loadableAvatarUrl,u=t.local,N=t.name,f=t.pinned,R=t.presence,D=t.role,v=t.conference,E=t.id;return u&&(v=void 0,E||(E=T.LOCAL_PARTICIPANT_DEFAULT_ID)),{avatarID:c,avatarURL:A,botType:o,conference:v,connectionStatus:l,dominantSpeaker:I||!1,email:s,id:E,isFakeParticipant:P,isJigasi:p,loadableAvatarUrl:_,local:u||!1,name:N,pinned:f||!1,presence:R,role:D||T.PARTICIPANT_ROLE.NONE}}A.ReducerRegistry.register('features/base/participants',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.SET_LOADABLE_AVATAR_URL:case o.DOMINANT_SPEAKER_CHANGED:case o.PARTICIPANT_ID_CHANGED:case o.PARTICIPANT_UPDATED:case o.PIN_PARTICIPANT:return n.map(function(n){return I(n,t)});case o.PARTICIPANT_JOINED:return(0,c.default)(n).concat([s(t)]);case o.PARTICIPANT_LEFT:var A=t.participant,T=A.conference,l=A.id;return n.filter(function(n){return!(n.id===l&&n.conference===T&&(T||n.local))})}return n})},1727,[3,53,31,443,877,945]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),c=r(d[3]),s=r(d[4]),u=window,h=u.innerHeight,o=void 0===h?0:h,R=u.innerWidth,l=void 0===R?0:R,E={aspectRatio:s.ASPECT_RATIO_NARROW,clientHeight:o,clientWidth:l,reducedUI:!1};n.ReducerRegistry.register('features/base/responsive-ui',function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E,u=arguments.length>1?arguments[1]:void 0;switch(u.type){case c.CLIENT_RESIZED:return(0,t.default)({},s,{clientWidth:u.clientWidth,clientHeight:u.clientHeight});case c.SET_ASPECT_RATIO:return(0,n.set)(s,'aspectRatio',u.aspectRatio);case c.SET_REDUCED_UI:return(0,n.set)(s,'reducedUI',u.reducedUI)}return s})},1728,[3,53,443,1083,999]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),o=t(r(d[1])),c=r(d[2]),s=r(d[3]),l=t(r(d[4])),u=r(d[5]),v=r(d[6]),n=r(d[7]),I=r(d[8]),f=r(d[9]),p=t(r(d[10])),D={audioOutputDeviceId:void 0,avatarID:void 0,avatarURL:void 0,cameraDeviceId:void 0,disableCallIntegration:void 0,disableCrashReporting:void 0,disableP2P:void 0,displayName:void 0,email:void 0,localFlipX:!0,micDeviceId:void 0,serverURL:void 0,startAudioOnly:!1,startWithAudioMuted:!1,startWithVideoMuted:!1,userSelectedAudioOutputDeviceId:void 0,userSelectedCameraDeviceId:void 0,userSelectedMicDeviceId:void 0,userSelectedAudioOutputDeviceLabel:void 0,userSelectedCameraDeviceLabel:void 0,userSelectedMicDeviceLabel:void 0,userSelectedSkipPrejoin:void 0},S={};function L(){var t=c.jitsiLocalStorage.getItem('features/base/profile');if(t)try{if((t=JSON.parse(t))&&'object'==typeof t)return t.profile||t}catch(t){p.default.warn('Error parsing persisted legacy profile',t)}return{}}function b(t){var o=t,u=c.jitsiLocalStorage.getItem('displayname'),n=c.jitsiLocalStorage.getItem('email'),f=l.default.escape(c.jitsiLocalStorage.getItem('avatarId')),p=null===u?void 0:l.default.escape(u),D=null===n?void 0:l.default.escape(n);if(f||(f=(0,s.randomHexString)(32)),o=(0,I.assignIfDefined)({avatarID:f,displayName:p,email:D},o),!v.browser.isReactNative()){var S=JSON.parse(c.jitsiLocalStorage.getItem('localFlipX')||'true'),b=c.jitsiLocalStorage.getItem('cameraDeviceId')||'',j=c.jitsiLocalStorage.getItem('micDeviceId')||'',y=c.jitsiLocalStorage.getItem('audioOutputDeviceId')||'default';o=(0,I.assignIfDefined)({audioOutputDeviceId:y,cameraDeviceId:b,localFlipX:S,micDeviceId:j},o)}var O=L();return o=(0,I.assignIfDefined)(O,o)}Object.keys(D).forEach(function(t){S[t]=!0}),S.audioOutputDeviceId=!1,S.cameraDeviceId=!1,S.micDeviceId=!1,n.PersistenceRegistry.register("features/base/settings",S),n.ReducerRegistry.register("features/base/settings",function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:D,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case u.APP_WILL_MOUNT:return b(t);case f.SETTINGS_UPDATED:return(0,o.default)({},t,c.settings)}return t})},1729,[3,53,483,1126,445,958,879,443,506,912,1730]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/base/settings');e.default=t},1730,[495]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),s=r(d[2]),u=n(r(d[3])),o=new Map;function E(n,o){var E=o.type===s._ADD_AUDIO_ELEMENT,c=new Map(n),_=o.soundId,f=c.get(_);return f?E?c.set(_,(0,t.assign)(f,{audioElement:o.audioElement})):c.set(_,(0,t.assign)(f,{audioElement:void 0})):u.default.warn(o.type+": no sound for id: "+_),c}function c(n,t){var s=new Map(n);return s.set(t.soundId,{src:t.src,options:t.options}),s}function _(n,t){var s=new Map(n);return s.delete(t.soundId),s}t.ReducerRegistry.register('features/base/sounds',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s._ADD_AUDIO_ELEMENT:case s._REMOVE_AUDIO_ELEMENT:return E(n,t);case s.REGISTER_SOUND:return c(n,t);case s.UNREGISTER_SOUND:return _(n,t);default:return n}})},1731,[3,443,964,1298]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),c={connectionState:''};function o(n,c){return(0,t.assign)(n,{connectionState:c.connectionState})}t.ReducerRegistry.register('features/testing',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,u=arguments.length>1?arguments[1]:void 0;switch(u.type){case n.SET_CONNECTION_STATE:return o(t,u);default:return t}})},1732,[443,1301]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),c=t(r(d[1])),n=t(r(d[2])),u=r(d[3]),s=r(d[4]),T=r(d[5]);function R(t,c){switch(c.type){case u.PARTICIPANT_ID_CHANGED:if(t.participantId===c.oldValue)return(0,n.default)({},t,{participantId:c.newValue});break;case T.TRACK_UPDATED:var s=c.track;if(t.jitsiTrack===s.jitsiTrack)for(var R in s)if(t[R]!==s[R])return(0,n.default)({},t,s);break;case T.TRACK_NO_DATA_FROM_SOURCE:var A=c.track;if(t.jitsiTrack===A.jitsiTrack){var _=A.jitsiTrack.isReceivingData();if(t.isReceivingData!==_)return(0,n.default)({},t,{isReceivingData:_})}}return t}s.ReducerRegistry.register('features/base/tracks',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;switch(n.type){case u.PARTICIPANT_ID_CHANGED:case T.TRACK_NO_DATA_FROM_SOURCE:case T.TRACK_UPDATED:return t.map(function(t){return R(t,n)});case T.TRACK_ADDED:var s=t;return n.track.local&&(s=t.filter(function(t){return!t.local||t.mediaType!==n.track.mediaType})),(0,c.default)(s).concat([n.track]);case T.TRACK_CREATE_CANCELED:case T.TRACK_CREATE_ERROR:return t.filter(function(t){return!t.local||t.mediaType!==n.trackType});case T.TRACK_REMOVED:return t.filter(function(t){return t.jitsiTrack!==n.track.jitsiTrack});case T.TRACK_WILL_CREATE:return(0,c.default)(t).concat([n.track]);default:return t}}),s.ReducerRegistry.register('features/base/no-src-data',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case T.SET_NO_SRC_DATA_NOTIFICATION_UID:return(0,s.set)(t,'noSrcDataNotificationUid',c.uid);default:return t}})},1733,[3,31,53,704,443,940]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),c=r(d[3]),u=r(d[4]);c.ReducerRegistry.register('features/base/user-interaction',function(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch((arguments.length>1?arguments[1]:void 0).type){case n.APP_WILL_MOUNT:case n.APP_WILL_UNMOUNT:return(0,t.default)({},c,{interacted:!1});case u.USER_INTERACTION_RECEIVED:return(0,t.default)({},c,{interacted:!0})}return c})},1734,[3,53,956,443,1310]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),u=r(d[2]),n=r(d[3]);u.ReducerRegistry.register('features/blur',function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch((arguments.length>1?arguments[1]:void 0).type){case n.BLUR_ENABLED:return(0,t.default)({},u,{blurEnabled:!0});case n.BLUR_DISABLED:return(0,t.default)({},u,{blurEnabled:!1})}return u})},1735,[3,53,443,1736]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.BLUR_DISABLED=e.BLUR_ENABLED=void 0;e.BLUR_ENABLED='BLUR_ENABLED';e.BLUR_DISABLED='BLUR_DISABLED'},1736,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),s=r(d[3]),A={authorization:void 0,events:[],integrationReady:!1,integrationType:void 0,msAuthState:void 0};n.PersistenceRegistry.register("features/calendar-sync",{integrationType:!0,msAuthState:!0}),n.ReducerRegistry.register("features/calendar-sync",function(){var E=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A,o=arguments.length>1?arguments[1]:void 0;switch(o.type){case s.CLEAR_CALENDAR_INTEGRATION:return A;case s.SET_CALENDAR_AUTH_STATE:return o.msAuthState?(0,n.set)(E,'msAuthState',(0,t.default)({},E.msAuthState,o.msAuthState)):(0,n.set)(E,'msAuthState',void 0);case s.SET_CALENDAR_AUTHORIZATION:return(0,n.set)(E,'authorization',o.authorization);case s.SET_CALENDAR_ERROR:return(0,n.set)(E,'error',o.error);case s.SET_CALENDAR_EVENTS:return(0,n.set)(E,'events',o.events);case s.SET_CALENDAR_INTEGRATION:return(0,t.default)({},E,{integrationReady:o.integrationReady,integrationType:o.integrationType});case s.SET_CALENDAR_PROFILE_EMAIL:return(0,n.set)(E,'profileEmail',o.email);case s.SET_LOADING_CALENDAR_EVENTS:return(0,n.set)(E,'isLoadingEvents',o.isLoadingEvents)}return E})},1737,[3,53,443,1738]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_LOADING_CALENDAR_EVENTS=e.SET_CALENDAR_PROFILE_EMAIL=e.SET_CALENDAR_AUTH_STATE=e.SET_CALENDAR_INTEGRATION=e.SET_CALENDAR_EVENTS=e.SET_CALENDAR_ERROR=e.SET_CALENDAR_AUTHORIZATION=e.REFRESH_CALENDAR=e.CLEAR_CALENDAR_INTEGRATION=void 0;e.CLEAR_CALENDAR_INTEGRATION='CLEAR_CALENDAR_INTEGRATION';e.REFRESH_CALENDAR='REFRESH_CALENDAR';e.SET_CALENDAR_AUTHORIZATION='SET_CALENDAR_AUTHORIZATION';e.SET_CALENDAR_ERROR='SET_CALENDAR_ERROR';e.SET_CALENDAR_EVENTS='SET_CALENDAR_EVENTS';e.SET_CALENDAR_INTEGRATION='SET_CALENDAR_INTEGRATION';e.SET_CALENDAR_AUTH_STATE='SET_CALENDAR_AUTH_STATE';e.SET_CALENDAR_PROFILE_EMAIL='SET_CALENDAR_PROFILE_EMAIL';e.SET_LOADING_CALENDAR_EVENTS='SET_LOADING_CALENDAR_EVENTS'},1738,[]);
__d(function(g,r,i,a,m,e,d){var s=r(d[0]),t=s(r(d[1])),n=s(r(d[2])),p=r(d[3]),c=r(d[4]),o=r(d[5]),u=r(d[6]),v={isOpen:!1,lastReadMessage:void 0,messages:[],privateMessageRecipient:void 0};function l(s){return(0,t.default)({},s,{isOpen:!s.isOpen,lastReadMessage:s.messages['ReactNative'===navigator.product?0:s.messages.length-1],privateMessageRecipient:s.isOpen?void 0:s.privateMessageRecipient})}c.ReducerRegistry.register('features/chat',function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case o.ADD_MESSAGE:var M={displayName:c.displayName,error:c.error,id:c.id,messageType:c.messageType,message:c.message,privateMessage:c.privateMessage,recipient:c.recipient,timestamp:c.timestamp},R='ReactNative'===navigator.product?[M].concat((0,n.default)(s.messages)):(0,n.default)(s.messages).concat([M]);return(0,t.default)({},s,{lastReadMessage:c.hasRead?M:s.lastReadMessage,messages:R});case o.CLEAR_MESSAGES:return(0,t.default)({},s,{lastReadMessage:void 0,messages:[]});case p.SET_ACTIVE_MODAL_ID:if(c.activeModalId===u.CHAT_VIEW_MODAL_ID)return l(s);break;case o.SET_PRIVATE_MESSAGE_RECIPIENT:return(0,t.default)({},s,{isOpen:Boolean(c.participant)||s.isOpen,privateMessageRecipient:c.participant});case o.TOGGLE_CHAT:return l(s)}return s})},1739,[3,53,31,1192,443,1317,1323]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),t=r(d[2]),u=r(d[3]);t.ReducerRegistry.register('features/deep-linking',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch((arguments.length>1?arguments[1]:void 0).type){case u.OPEN_WEB_APP:return(0,n.default)({},t,{launchInWeb:!0})}return t})},1740,[3,53,443,1391]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),o=r(d[2]),n=r(d[3]);o.ReducerRegistry.register('features/device-selection',function(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;return u.type===n.SET_DEVICE_SELECTION_POPUP_DATA?(0,t.default)({},o,{popupDialogData:u.popupDialogData}):o})},1741,[3,53,443,1742]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_DEVICE_SELECTION_POPUP_DATA=void 0;e.SET_DEVICE_SELECTION_POPUP_DATA='SET_DEVICE_SELECTION_POPUP_DATA'},1742,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),o=r(d[3]);n.PersistenceRegistry.register("features/dropbox"),n.ReducerRegistry.register("features/dropbox",function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1?arguments[1]:void 0;switch(s.type){case o.UPDATE_DROPBOX_TOKEN:return(0,t.default)({},n,{token:s.token});default:return n}})},1743,[3,53,443,1744]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.UPDATE_DROPBOX_TOKEN=void 0;e.UPDATE_DROPBOX_TOKEN='UPDATE_DROPBOX_TOKEN'},1744,[]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0])(r(d[1])),n=r(d[2]),l=r(d[3]),t={backgroundColor:'',backgroundImageUrl:'',customizationReady:!1,inviteDomain:'',logoClickUrl:'',logoImageUrl:''};n.ReducerRegistry.register('features/dynamic-branding',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case l.SET_DYNAMIC_BRANDING_DATA:var u=c.value;return{backgroundColor:u.backgroundColor,backgroundImageUrl:u.backgroundImageUrl,inviteDomain:u.inviteDomain,logoClickUrl:u.logoClickUrl,logoImageUrl:u.logoImageUrl,customizationReady:!0};case l.SET_DYNAMIC_BRANDING_READY:return(0,o.default)({},n,{customizationReady:!0})}return n})},1745,[3,53,443,1746]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.SET_DYNAMIC_BRANDING_READY=e.SET_DYNAMIC_BRANDING_DATA=void 0;e.SET_DYNAMIC_BRANDING_DATA='SET_DYNAMIC_BRANDING_DATA';e.SET_DYNAMIC_BRANDING_READY='SET_DYNAMIC_BRANDING_READY'},1746,[]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),c={documentUrl:void 0,editing:!1};n.ReducerRegistry.register('features/etherpad',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,l=arguments.length>1?arguments[1]:void 0;switch(l.type){case u.SET_DOCUMENT_EDITING_STATUS:return(0,t.default)({},n,{editing:l.editing});case u.SET_DOCUMENT_URL:return(0,t.default)({},n,{documentUrl:l.documentUrl});default:return n}})},1747,[3,53,443,1402]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),s=r(d[2]),t=r(d[3]),l={enabled:!0,horizontalViewDimensions:{},tileViewDimensions:{},visible:!0};s.ReducerRegistry.register('features/filmstrip',function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,o=arguments.length>1?arguments[1]:void 0;switch(o.type){case t.SET_FILMSTRIP_ENABLED:return(0,n.default)({},s,{enabled:o.enabled});case t.SET_FILMSTRIP_HOVERED:return(0,n.default)({},s,{hovered:o.hovered});case t.SET_FILMSTRIP_VISIBLE:return(0,n.default)({},s,{visible:o.visible});case t.SET_HORIZONTAL_VIEW_DIMENSIONS:return(0,n.default)({},s,{horizontalViewDimensions:o.dimensions});case t.SET_TILE_VIEW_DIMENSIONS:return(0,n.default)({},s,{tileViewDimensions:o.dimensions})}return s})},1748,[3,53,443,1259]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);t.ReducerRegistry.register('features/follow-me',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;switch(o.type){case s.SET_FOLLOW_ME_MODERATOR:var _=(0,t.set)(n,'moderator',o.id);return o.id||(_=(0,t.set)(_,'state',void 0)),_;case s.SET_FOLLOW_ME_STATE:return(0,t.set)(n,'state',o.state)}return n})},1749,[443,1413]);
__d(function(g,r,i,a,m,e,d){var o=r(d[0])(r(d[1])),t=r(d[2]),l=r(d[3]),E={googleAPIState:r(d[4]).GOOGLE_API_STATES.NEEDS_LOADING,profileEmail:''};t.ReducerRegistry.register('features/google-api',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case l.SET_GOOGLE_API_STATE:return(0,o.default)({},t,{googleAPIState:n.googleAPIState,googleResponse:n.googleResponse});case l.SET_GOOGLE_API_PROFILE:return(0,o.default)({},t,{profileEmail:n.profileEmail})}return t})},1750,[3,53,443,1554,1555]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),u=n(r(d[2])),s=r(d[3]),l=r(d[4]),I=n(r(d[5])),c={calleeInfoVisible:!1,numbersEnabled:!0,numbersFetched:!1,pendingInviteRequests:[]};s.ReducerRegistry.register('features/invite',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,s=arguments.length>1?arguments[1]:void 0;switch(s.type){case l.ADD_PENDING_INVITE_REQUEST:return(0,u.default)({},n,{pendingInviteRequests:(0,t.default)(n.pendingInviteRequests).concat([s.request])});case l.REMOVE_PENDING_INVITE_REQUESTS:return(0,u.default)({},n,{pendingInviteRequests:[]});case l.SET_CALLEE_INFO_VISIBLE:return(0,u.default)({},n,{calleeInfoVisible:s.calleeInfoVisible,initialCalleeInfo:s.initialCalleeInfo});case l.UPDATE_DIAL_IN_NUMBERS_FAILED:return(0,u.default)({},n,{error:s.error});case l.UPDATE_DIAL_IN_NUMBERS_SUCCESS:if(Array.isArray(s.dialInNumbers))return(0,u.default)({},n,{conferenceID:s.conferenceID,numbers:s.dialInNumbers,numbersEnabled:!0,numbersFetched:!0});I.default.warn('Using deprecated API for retrieving phone numbers');var E=s.dialInNumbers.numbersEnabled;return(0,u.default)({},n,{conferenceID:s.conferenceID,numbers:s.dialInNumbers,numbersEnabled:E,numbersFetched:!0})}return n})},1751,[3,31,53,443,1208,1203]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),u=r(d[3]),I=r(d[4]);u.ReducerRegistry.register('features/large-video',function(){var u=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case n.PARTICIPANT_ID_CHANGED:if(u.participantId===c.oldValue)return(0,t.default)({},u,{participantId:c.newValue});break;case I.SELECT_LARGE_VIDEO_PARTICIPANT:return(0,t.default)({},u,{participantId:c.participantId});case I.UPDATE_KNOWN_LARGE_VIDEO_RESOLUTION:return(0,t.default)({},u,{resolution:c.resolution})}return u})},1752,[3,53,704,443,1260]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=n(r(d[1])),c=n(r(d[2])),o=r(d[3]),u=r(d[4]),s=r(d[5]),l={knocking:!1,knockingParticipants:[],lobbyEnabled:!1,passwordJoinFailed:!1};function E(n,o){var u=o.knockingParticipants.find(function(t){return t.id===n.id});return u=(0,c.default)({},u,n),(0,c.default)({},o,{knockingParticipants:(0,t.default)(o.knockingParticipants.filter(function(t){return t.id!==n.id})).concat([u])})}u.ReducerRegistry.register('features/lobby',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.CONFERENCE_JOINED:case o.CONFERENCE_LEFT:return(0,c.default)({},n,{knocking:!1,passwordJoinFailed:!1});case s.KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED:return E(t.participant,n);case s.KNOCKING_PARTICIPANT_LEFT:return(0,c.default)({},n,{knockingParticipants:n.knockingParticipants.filter(function(n){return n.id!==t.id})});case s.SET_KNOCKING_STATE:return(0,c.default)({},n,{knocking:t.knocking,passwordJoinFailed:!1});case s.SET_LOBBY_MODE_ENABLED:return(0,c.default)({},n,{lobbyEnabled:t.enabled});case o.SET_PASSWORD:return(0,c.default)({},n,{passwordJoinFailed:!1});case s.SET_PASSWORD_JOIN_FAILED:return(0,c.default)({},n,{passwordJoinFailed:t.failed})}return n})},1753,[3,31,53,1101,443,1424]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),o=r(d[3]),I=r(d[4]),c={enabled:!0,notifications:[]};function u(t,n){for(var o=I.NOTIFICATION_TYPE_PRIORITIES[n.props.appearance]||0,c=t.length,u=1;u<t.length;u++){var s=t[u];if((I.NOTIFICATION_TYPE_PRIORITIES[s.props.appearance]||0)<o){c=u;break}}var f=t.slice();return f.splice(c,0,n),f}n.ReducerRegistry.register('features/notifications',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,I=arguments.length>1?arguments[1]:void 0;switch(I.type){case o.CLEAR_NOTIFICATIONS:return(0,t.default)({},n,{notifications:[]});case o.HIDE_NOTIFICATION:return(0,t.default)({},n,{notifications:n.notifications.filter(function(t){return t.uid!==I.uid})});case o.SET_NOTIFICATIONS_ENABLED:return(0,t.default)({},n,{enabled:I.enabled});case o.SHOW_NOTIFICATION:return(0,t.default)({},n,{notifications:u(n.notifications,{component:I.component,props:I.props,timeout:I.timeout,uid:I.uid})})}return n})},1754,[3,53,443,721,722]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),s=r(d[2]);function o(t,s){var o=s.browser,u=s.isVisible;return(0,n.assign)(t,{browser:o,isMediaPermissionPromptVisible:u})}function u(t,s){return(0,n.set)(t,'loadConfigOverlayVisible',s)}function _(t,s){var o=s.fatalError;return(0,n.set)(t,'fatalError',o)}n.ReducerRegistry.register('features/overlay',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case t.CONFIG_WILL_LOAD:return u(n,Boolean(c.room));case t.LOAD_CONFIG_ERROR:case t.SET_CONFIG:return u(!1);case s.MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED:return o(n,c);case s.SET_FATAL_ERROR:return _(n,c)}return n})},1755,[917,443,1090]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.MAX_LIST_SIZE=void 0;var n=t(r(d[1])),c=r(d[2]),u=r(d[3]),o=r(d[4]),f=r(d[5]),s=r(d[6]),l=r(d[7]),R=t(r(d[8])),_=[],E='recentURLs',L=30;e.MAX_LIST_SIZE=L;function h(t,n){return t.filter(function(t){return t.conference!==n.url||t.date!==n.date})}function v(t){if(t&&'object'==typeof t){if(Array.isArray(t))return t;var n=t.list;if(Array.isArray(n)&&n.length)return n.slice()}return _}function y(){var t=c.jitsiLocalStorage.getItem(E);if(t)try{return JSON.parse(t)}catch(t){R.default.warn('Failed to parse legacy recent-room list!')}return[]}function N(t,n){var c=n.locationURL.href,u=t.filter(function(t){return!U(t.conference,c)});return u.push({conference:c,date:Date.now(),duration:0}),u.splice(0,u.length-L),u}function T(t,c){var u=c.locationURL;if(u&&u.href&&t.length){var o=t.length-1,f=t[o];if(U(f.conference,u.href)){var s=(0,n.default)({},f,{duration:Date.now()-f.date});delete s.conferenceDuration;var l=t.slice();return l[o]=s,l}}return t}function U(t,n){return(0,o.getURLWithoutParamsNormalized)(new URL(t))===(0,o.getURLWithoutParamsNormalized)(new URL(n))}f.PersistenceRegistry.register("features/recent-list"),f.ReducerRegistry.register("features/recent-list",function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y(),n=arguments.length>1?arguments[1]:void 0;if((0,l.isRecentListEnabled)())switch(n.type){case u.APP_WILL_MOUNT:return v(t);case s.DELETE_RECENT_LIST_ENTRY:return h(t,n.entryId);case s._STORE_CURRENT_CONFERENCE:return N(t,n);case s._UPDATE_CONFERENCE_DURATION:return T(t,n);default:return t}return t})},1756,[3,53,483,956,1112,443,1441,1442,1757]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=(0,r(d[0]).getLogger)('features/recent-list');e.default=t},1757,[495]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=t(r(d[1])),s=t(r(d[2])),u=r(d[3]),o=r(d[4]),f={pendingNotificationUids:{},sessionDatas:[]};function c(t,u){return t.find(function(t){return t.id===u.id})?t.map(function(t){return t.id===u.id?(0,s.default)({},u):t}):(0,n.default)(t).concat([(0,s.default)({},u)])}u.ReducerRegistry.register('features/recording',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case o.CLEAR_RECORDING_SESSIONS:return(0,s.default)({},t,{sessionDatas:[]});case o.RECORDING_SESSION_UPDATED:return(0,s.default)({},t,{sessionDatas:c(t.sessionDatas,n.sessionData)});case o.SET_PENDING_RECORDING_NOTIFICATION_UID:var u=(0,s.default)({},t.pendingNotificationUids);return u[n.streamType]=n.uid,(0,s.default)({},t,{pendingNotificationUids:u});case o.SET_STREAM_KEY:return(0,s.default)({},t,{streamKey:n.streamKey});default:return t}})},1758,[3,31,53,443,1444]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),s=r(d[3]);n.ReducerRegistry.register('features/settings',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;switch(u.type){case s.SET_AUDIO_SETTINGS_VISIBILITY:return(0,t.default)({},n,{audioSettingsVisible:u.value});case s.SET_VIDEO_SETTINGS_VISIBILITY:return(0,t.default)({},n,{videoSettingsVisible:u.value})}return n})},1759,[3,53,443,1674]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),s=r(d[2]),n=r(d[3]),u={_transcriptMessages:new Map,_requestingSubtitles:!1};function c(s,n){var u=n.transcriptMessageID,c=new Map(s._transcriptMessages);return c.delete(u),(0,t.default)({},s,{_transcriptMessages:c})}function _(s,n){var u=n.transcriptMessageID,c=n.newTranscriptMessage,_=new Map(s._transcriptMessages);return _.set(u,c),(0,t.default)({},s,{_transcriptMessages:_})}s.ReducerRegistry.register('features/subtitles',function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,M=arguments.length>1?arguments[1]:void 0;switch(M.type){case n.REMOVE_TRANSCRIPT_MESSAGE:return c(s,M);case n.UPDATE_TRANSCRIPT_MESSAGE:return _(s,M);case n.TOGGLE_REQUESTING_SUBTITLES:return(0,t.default)({},s,{_requestingSubtitles:!s._requestingSubtitles})}return s})},1760,[3,53,443,1105]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),l=r(d[2]),O=r(d[3]);l.ReducerRegistry.register('features/toolbox',function(){var s,u,n,_=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(s=!1,u=!1,n=5e3,'undefined'!=typeof interfaceConfig&&(interfaceConfig.INITIAL_TOOLBAR_TIMEOUT&&(n=interfaceConfig.INITIAL_TOOLBAR_TIMEOUT),void 0!==interfaceConfig.TOOLBAR_ALWAYS_VISIBLE&&(s=interfaceConfig.TOOLBAR_ALWAYS_VISIBLE)),!0===s&&(u=!0),{alwaysVisible:s,enabled:!0,hovered:!1,overflowMenuVisible:!1,timeoutID:null,timeoutMS:n,visible:u}),T=arguments.length>1?arguments[1]:void 0;switch(T.type){case O.CLEAR_TOOLBOX_TIMEOUT:return(0,t.default)({},_,{timeoutID:void 0});case O.FULL_SCREEN_CHANGED:return(0,t.default)({},_,{fullScreen:T.fullScreen});case O.SET_OVERFLOW_MENU_VISIBLE:return(0,t.default)({},_,{overflowMenuVisible:T.visible});case O.SET_TOOLBAR_HOVERED:return(0,t.default)({},_,{hovered:T.hovered});case O.SET_TOOLBOX_ALWAYS_VISIBLE:return(0,t.default)({},_,{alwaysVisible:T.alwaysVisible,visible:!0===T.alwaysVisible||_.visible});case O.SET_TOOLBOX_ENABLED:return(0,t.default)({},_,{enabled:T.enabled});case O.SET_TOOLBOX_TIMEOUT:return(0,t.default)({},_,{timeoutID:T.timeoutID,timeoutMS:T.timeoutMS});case O.SET_TOOLBOX_TIMEOUT_MS:return(0,t.default)({},_,{timeoutMS:T.timeoutMS});case O.SET_TOOLBOX_VISIBLE:return(0,l.set)(_,'visible',_.alwaysVisible||T.visible);case O.TOGGLE_TOOLBOX_VISIBLE:return(0,l.set)(_,'visible',_.alwaysVisible||!_.visible)}return _})},1761,[3,53,443,1001]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0])(r(d[1])),t=r(d[2]),s=r(d[3]);t.ReducerRegistry.register('features/transcribing',function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{isTranscribing:!1,isDialing:!1,isTerminating:!1,transcriberJID:null,potentialTranscriberJIDs:[]},c=arguments.length>1?arguments[1]:void 0;switch(c.type){case s._TRANSCRIBER_JOINED:return(0,n.default)({},t,{isTranscribing:!0,isDialing:!1,transcriberJID:c.transcriberJID});case s._TRANSCRIBER_LEFT:return(0,n.default)({},t,{isTerminating:!1,isTranscribing:!1,transcriberJID:void 0,potentialTranscriberJIDs:[]});case s._POTENTIAL_TRANSCRIBER_JOINED:return(0,n.default)({},t,{potentialTranscriberJIDs:[c.transcriberJID].concat(t.potentialTranscriberJIDs)});case s.SET_PENDING_TRANSCRIBING_NOTIFICATION_UID:return(0,n.default)({},t,{pendingNotificationUid:c.uid});default:return t}})},1762,[3,53,443,1478]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),n=r(d[2]),s=r(d[3]),l={screenShares:[],tileViewEnabled:void 0};n.ReducerRegistry.register('features/video-layout',function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,u=arguments.length>1?arguments[1]:void 0;switch(u.type){case s.SCREEN_SHARE_PARTICIPANTS_UPDATED:return(0,t.default)({},n,{screenShares:u.participantIds});case s.SET_TILE_VIEW:return(0,t.default)({},n,{tileViewEnabled:u.enabled})}return n})},1763,[3,53,443,1261]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0])(r(d[1])),s=r(d[2]),u=r(d[3]);s.ReducerRegistry.register('features/videosipgw',function(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;switch(n.type){case u.SIP_GW_AVAILABILITY_CHANGED:return(0,t.default)({},s,{status:n.status})}return s})},1764,[3,53,443,1207]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),s=r(d[1]);t.PersistenceRegistry.register("features/welcome",{defaultPage:!0}),t.ReducerRegistry.register("features/welcome",function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0;switch(u.type){case s.SET_SIDEBAR_VISIBLE:return(0,t.set)(n,'sideBarVisible',u.visible);case s.SET_WELCOME_PAGE_LISTS_DEFAULT_PAGE:return(0,t.set)(n,'defaultPage',u.pageIndex)}return n})},1765,[443,1686]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){"default"!==n&&"__esModule"!==n&&Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},1766,[1767]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"IncomingCallApp",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"IncomingCallPage",{enumerable:!0,get:function(){return u.default}});var t=n(r(d[1])),u=n(r(d[2]))},1767,[3,1768,1770]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=t(r(d[1])),n=t(r(d[2])),o=t(r(d[3])),u=t(r(d[4])),f=t(r(d[5])),c=t(r(d[6])),p=r(d[7]),s=r(d[8]),h=t(r(d[9])),v=(function(t){function p(){return(0,l.default)(this,p),(0,o.default)(this,(0,u.default)(p).apply(this,arguments))}return(0,c.default)(p,t),(0,n.default)(p,[{key:"componentDidMount",value:function(){var t=this;(0,f.default)((0,u.default)(p.prototype),"componentDidMount",this).call(this),this._init.then(function(){var l=t.state.store.dispatch,n=t.props,o=n.callerAvatarURL,c=n.callerName,v=n.hasVideo;l((0,s.incomingCallReceived)({avatarUrl:o,hasVideo:v,name:c})),(0,f.default)((0,u.default)(p.prototype),"_navigate",t).call(t,{component:h.default})})}}]),p})(p.BaseApp);e.default=v},1768,[3,4,5,6,9,46,10,956,1769,1770]);
__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.incomingCallAnswered=function(){return{type:n.INCOMING_CALL_ANSWERED}},e.incomingCallDeclined=function(){return{type:n.INCOMING_CALL_DECLINED}},e.incomingCallReceived=function(t){return{type:n.INCOMING_CALL_RECEIVED,caller:t}};var n=r(d[0])},1769,[1177]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]),l=r(d[1]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(r(d[2])),u=l(r(d[3])),f=l(r(d[4])),c=l(r(d[5])),o=l(r(d[6])),s=t(r(d[7])),v=r(d[8]),y=l(r(d[9])),E=r(d[10]),_=r(d[11]),p=r(d[12]),A=l(r(d[13])),C=l(r(d[14])),b=t(r(d[15])),T=(function(t){function l(){return(0,n.default)(this,l),(0,f.default)(this,(0,c.default)(l).apply(this,arguments))}return(0,o.default)(l,t),(0,u.default)(l,[{key:"render",value:function(){var t=this.props,l=t.t,n=t._callerName,u=l(t._hasVideo?'incomingCall.videoCallTitle':'incomingCall.audioCallTitle');return s.default.createElement(v.View,{style:b.default.pageContainer},s.default.createElement(v.View,{style:b.default.backgroundAvatar},s.default.createElement(v.Image,{source:{uri:this.props._callerAvatarURL},style:b.default.backgroundAvatarImage})),s.default.createElement(y.default,{colors:b.BACKGROUND_OVERLAY_GRADIENT,style:b.default.backgroundOverlayGradient}),s.default.createElement(v.Text,{style:b.default.title},u),s.default.createElement(v.Text,{numberOfLines:6,style:b.default.callerName},n),s.default.createElement(v.Text,{style:b.default.productLabel},l('incomingCall.productLabel')),this._renderCallerAvatar(),this._renderButtons())}},{key:"_renderButtons",value:function(){var t=this.props.t;return s.default.createElement(v.View,{style:b.default.buttonsContainer},s.default.createElement(v.View,{style:b.default.buttonWrapper},s.default.createElement(C.default,{styles:b.default.declineButtonStyles}),s.default.createElement(v.Text,{style:b.default.buttonText},t('incomingCall.decline'))),s.default.createElement(v.View,{style:b.default.buttonWrapper},s.default.createElement(A.default,{styles:b.default.answerButtonStyles}),s.default.createElement(v.Text,{style:b.default.buttonText},t('incomingCall.answer'))))}},{key:"_renderCallerAvatar",value:function(){return s.default.createElement(v.View,{style:b.default.avatarContainer},s.default.createElement(y.default,{colors:b.AVATAR_BORDER_GRADIENT,style:b.default.avatarBorder}),s.default.createElement(v.View,{style:b.default.avatar},s.default.createElement(E.Avatar,{size:b.CALLER_AVATAR_SIZE,url:this.props._callerAvatarURL})))}}]),l})(s.Component);var V=(0,_.translate)((0,p.connect)(function(t){var l=(t['features/mobile/incoming-call']||{}).caller;return{_callerAvatarURL:l.avatarUrl,_callerName:l.name,_hasVideo:l.hasVideo}})(T));e.default=V},1770,[2,3,4,5,6,9,10,59,15,1512,544,726,443,1771,1772,1773]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=n(r(d[1])),l=n(r(d[2])),c=n(r(d[3])),u=n(r(d[4])),o=n(r(d[5])),s=r(d[6]),f=r(d[7]),h=r(d[8]),p=r(d[9]),v=r(d[10]),b=(function(n){function s(){var n,l;(0,t.default)(this,s);for(var o=arguments.length,h=new Array(o),p=0;p<o;p++)h[p]=arguments[p];return(l=(0,c.default)(this,(n=(0,u.default)(s)).call.apply(n,[this].concat(h)))).accessibilityLabel='incomingCall.answer',l.icon=f.IconHangup,l.label='incomingCall.answer',l}return(0,o.default)(s,n),(0,l.default)(s,[{key:"_handleClick",value:function(){this.props.dispatch((0,v.incomingCallAnswered)())}}]),s})(p.AbstractButton),y=(0,s.translate)((0,h.connect)()(b));e.default=y},1771,[3,4,5,6,9,10,726,548,443,970,1769]);
__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var l=n(r(d[1])),t=n(r(d[2])),c=n(r(d[3])),u=n(r(d[4])),o=n(r(d[5])),f=r(d[6]),s=r(d[7]),h=r(d[8]),p=r(d[9]),v=r(d[10]),b=(function(n){function f(){var n,t;(0,l.default)(this,f);for(var o=arguments.length,h=new Array(o),p=0;p<o;p++)h[p]=arguments[p];return(t=(0,c.default)(this,(n=(0,u.default)(f)).call.apply(n,[this].concat(h)))).accessibilityLabel='incomingCall.decline',t.icon=s.IconHangup,t.label='incomingCall.decline',t}return(0,o.default)(f,n),(0,t.default)(f,[{key:"_handleClick",value:function(){this.props.dispatch((0,v.incomingCallDeclined)())}}]),f})(p.AbstractButton),y=(0,f.translate)((0,h.connect)()(b));e.default=y},1772,[3,4,5,6,9,10,726,548,443,970,1769]);
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.CALLER_AVATAR_SIZE=e.BACKGROUND_OVERLAY_GRADIENT=e.AVATAR_BORDER_GRADIENT=void 0;var o=t(r(d[1])),l=r(d[2]);e.AVATAR_BORDER_GRADIENT=['#4C9AFF','#0052CC'];e.BACKGROUND_OVERLAY_GRADIENT=['#0052CC','#4C9AFF'];e.CALLER_AVATAR_SIZE=128;var n={alignSelf:'center',color:l.ColorPalette.white,fontSize:32},u={alignSelf:'center',borderRadius:28,borderWidth:0,flex:0,flexDirection:'row',height:56,justifyContent:'center',width:56},f={color:l.ColorPalette.white,fontSize:16},A=(0,l.createStyleSheet)({answerButtonStyles:{iconStyle:(0,o.default)({},n,{transform:[{rotateZ:'130deg'}]}),style:(0,o.default)({},u,{backgroundColor:l.ColorPalette.green}),underlayColor:l.ColorPalette.buttonUnderlay},avatar:{marginLeft:3,marginTop:3,position:'absolute'},avatarBorder:{borderRadius:67,height:134,position:'absolute',width:134},avatarContainer:{height:134,marginTop:32,width:134},backgroundAvatar:{bottom:0,left:0,position:'absolute',right:0,top:0},backgroundAvatarImage:{flex:1},backgroundOverlayGradient:{bottom:0,left:0,opacity:.9,position:'absolute',right:0,top:0},buttonsContainer:{alignItems:'flex-end',flex:1,flexDirection:'row'},buttonText:(0,o.default)({},f,{alignSelf:'center',marginTop:12}),buttonWrapper:{flex:1},callerName:(0,o.default)({},f,{fontSize:36,marginBottom:8,marginLeft:48,marginRight:48,marginTop:8,textAlign:'center'}),declineButtonStyles:{iconStyle:n,style:(0,o.default)({},u,{backgroundColor:l.ColorPalette.red}),underlayColor:l.ColorPalette.buttonUnderlay},pageContainer:{alignItems:'center',flex:1,paddingBottom:48,paddingTop:48},productLabel:(0,o.default)({},f),title:(0,o.default)({},f)});e.default=A},1773,[3,53,522]);
__r(95);
2019-10-07 20:56:30 +00:00
__r(0);