* Fix case-insensitive pre-auth header check in doPing
HTTP headers are case-insensitive per RFC 7230, but the pre-auth
rejection check accessed x-reject-reason using an exact lowercase key.
Servers/proxies may return varying cases (e.g. X-Reject-Reason). Add a
getResponseHeader utility for case-insensitive lookup and use it in both
pre-auth check paths.
* Address PR feedback: optimize getResponseHeader and fix test description
Try exact match and lowercase match before falling back to a full scan
to avoid array allocation on every call. Fix test description to say
"uppercase" instead of "mixed case" to match the test data.
* feat: show potential pre-auth secret error on server create
* chroe: address comments
* chore: updated message
* feat: read response header to check error source
* fix: i18n
* chore: rename pre-auth to just auth
* Add show/hide toggle to authentication secret field
Modified server form to match login form UX with password visibility toggle
* Add preauth secret field to edit server with validation and auto-open options
* chore: added missing 18n
* Increase form padding for better error message spacing
* Fix preauth secret removal when not provided
* Change edit server title from 'Edit server name' to 'Edit server'
* Add custom ping function and improve validation in edit server
* chore: revert en_AU
* chore: improved error message
* feat: animate advanced options
* fix: auth secret label being cropped
* refactor: doPing
* feat: add shared server password to server setup
* feat: allow editing the sever
* refactor: changed password -> secret, styling and tests
* e2e: draft e2e tests
* chore: lint fix
* feat: also send preauth secret header when using native share
* fix: removed unused server database migration
credentials are being stored in the keychain
* i18n: added missing english translations
* test(e2e): simplified connection tests
* test(e2e): rework
* refactor: remove setBearerToken
* chore: restore migrations the way it was
* chore: reverted file to original state
* chore: removed unneeded test and renamed password to secret
* chore: function version
* chore: updated forms i18n keys
* chore: remove if from test
* chore: unneeded variable
* fix: add missing key on object list
* refactor: swift keychain access to retrieve all credentials in one call
* revert: edit server screen
* refactor: credentials use getGenericCredential
* fix: objc code calling old method
* fix: added scroll to login screen
* chore: variable names
* fix: avoid inline styles
* fix: Improved appVersion positioning
* Update app/screens/server/form.tsx
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* feat: show error message on 403
* Revert "feat: show error message on 403"
This reverts commit f41630c767e10211adf1885321ceefd8a0931e32.
---------
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Add verification for push proxy and related interface
* Fix lint and extract i18n
* Be specific about undefined equalities.
* Fix test
* Address feedback
* Fix long server names styles
* Fix tests and typo
* Extract common observers to queries
* Separate also queries and more agressive refactoring
* Use query to avoid throws from findAndObserve
* Fix minor error
* Address feedback
* Address feedback
* Address feedback
* Fix model types
* Address feedback
* initial checkin
* all text is added
* add fonts
* wip
* get fonts from differnt site suggestion from matt
* use actual apostrophe
* add react-native-paper dependency
* wip
* add project info for metropolis fonts
* correct the display name help text alignment with stretch
use paper theme to color and make the the placeholder opaque
remove placeholder prop because spec wants the box to be empty on focus
* fix Metropolis font reference
* Add more styling. Clean up code later
* input box text theme color
* separate padding for two textinput boxes
share the input theme
* Use ActivityIndicator from react-native-paper
* wrap formatText components in a view so they scroll up inline with the
text inputs and button
* clean up styles section. no empty lines and no comments
* Use Colors library instead of harcoding #FFFFFF
* Move error message into helper directly under the server url input box
* need to handle the error so it can be presented in the modal
* set state for button is disabled or not
reset errors before every connect attempt
* when url is not valid show the error message and disable the connect
button until some text in display or the url input changes
* s/generic/default/
* group formatted messages together
* Add icon to the error message
fix clipped helper messages
* when urlError is not '', make the input border red
after connecting creates an error, typing in the input boxes will
* enable the connect button
* reset the error messages
* change outline from red to blue
* After connecting and the server url has an error, allow the user to
click the display input and keep the url border red. The only time the
red border and error reset is when the user types in that field again
* remove duplicate button component. only get the prop values and
construct after all values defined
* use correct icon and add spacing between icon and text
* fix styling for Android
New styling from figma
* initial add of background svg. RHS is off a bit
* sync with gekidou changes
* sync with gekidou
* sync with gekidou
* sync with gekidou
* sync with gekidou
* use new FloatingTextInput component
* Added widgets/text_settings
* wip
* wip
* Update index.tsx
* work in progress
* fix text settings component
* fix text settings component
* crash fix
* code clean up
* Update index.tsx
* Fix testSettings
* Wrap with View so the text moves with the text inputs when keyboard
appears
* update styling
when user starts typing in server url after a failed connect, dismiss
the error
* use utils/buttonStyles
* leave as it was to minimize irrelevant PR diffs
* nit
* Align all components
Add vertical margin to styles
Add subcontainer and container props to text_setting component
Use FormattedText for choosing a display name text instead of
text_setting helper text
* revert midnight change
* reset the connecing error when a user starts modifying the server url
* formatting
remove svg
repalce <Text> with <FormattedText>
* fix lint
* remove svg file
* Listening for appearance to set the theme for non connected screens
* Pass the theme as a prop for TextSettings
* Fix Server screen layout and pass the displayName for DB creation
* Tablet layout
* Persist keyboard on tap
* Change position & opacity for app version
* added background SVG
* Fix non theme control screens status bar color
* Split Server screen into smaller components
* fixed svg background layout for tablet
* Bring back form & header and remove some extra background color and styles
* Remove duplicate font reference in Info.plist
* Final UI tweaks
* Fix error display on url field
* margin bottom to app version
* Add ClientError utility to extract error
* update snapshot
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Login entry point
* feedback review
* sort imports
* Fix model relations
* Handle when no current team or current channel has been selected
* Fix MFA unit test
* update prepareCommonSystemValues arguments