The styles for smaller viewports were broken because I forgot to update
the small-screen grid template after adding the "paste-tip". The styles
have now been updated to fit the content properly on all of our
supported screen sizes.
* Initial implementation of new SrpInput component
This new version of the SrpInput component uses a separate field for
each word of the SRP. Only one field can be revealed at a time, making
it less likely that it gets accidentally revealed to somebody.
* Fix copy mistakes
* Move container div from 'create vault' to 'srp-input', and setup grid layout
* Increase size of title
* Remove hard-coded width in Storybook to allow testing different viewport sizes
* Improve layout
* Improve margins
* Update dropdown text
* Expand SRP input section
* Remove unused localized messages
* Update dropdown option names in unit tests
* Replace checkbox with show/hide toggle
* Remove unused localized message
* Fix 'data-testid' prop name
* Fix e2e test imports using paste
* Use 'ActionableMessage' component for error message
* Convert error popover to actionable message
* Add tip about pasting the SRP
* Remove invalid prop
The "info" style of `ActionableMessage` is the default, so no type is
required.
* Use more readable test convenience methods
The method `toBeInTheDocument()` is now used over `not.toBeNull()` to
improve the readability of tests. Likewise, the convenience method
`.clear` is now used to clear fields rather than manually entering the
key combination to clear a field.
* Fix misspelled word
Add a new component for controlling whether a field should be shown
or hidden. This will be used in later PRs as a control for sensitive
fields that are hidden by default.
This component should be fully accessible. Both mouse and keyboard
interactions have been tested, and `aria-label` attributes have been
added to explain the two "eye" icons that don't have any corresponding
text.
Thorough unit tests have been written, testing all props except
`className` (I don't know how to test that using Jest/`jsdom`).
Add two new FontAwesome icon components. The first is an eye, and the
second is an eye with a slash through it. These will be used in a
subsequent PR for a "Show/Hide" toggle.
The `data-test-id` prop has been added to `TextField`. This prop allows
selecting this component more easily from e2e and unit tests. This is
required for a subsequent PR that includes a text field that cannot be
selected for by placeholder or contents or label (any of which would
have been preferable).
The library `@testing-library/user-event` has been updated to the
latest beta version, so that our unit tests better model real user
interactions. In particular, I found that previously the `paste` event
was missing the `clipboardData` API, so it was impossible to implement
any custom handling of paste events (which we will need in later PRs).
See the `v14.0.0-beta.1` release notes for a list of all breaking
changes [1]. The main change is that all methods now return Promises.
The `paste` method has also been dramatically simplified.
The unit tests have also been updated to reset all mocks before each
test. These tests don't have any shared mocks, but this is generally a
good practice, to ensure that tests don't develop accidental inter-
dependencies.
[1]: https://github.com/testing-library/user-event/releases/tag/v14.0.0-beta.1
This is a pure refactor that extracts the SRP input from the
`CreateNewVault` component. This is intended to make future changes to
the SRP input easier, and to reduce duplication between the old and new
onboarding flows.
Extensive unit tests have been added for the new SRP input component.
A new test library was added (`@testing-library/user-event`) for
simulating user events with components rendered using the
`@testing-library` library.
A new helper method has been added (`renderWithLocalization`) for
rendering components using `@testing-library` with just our
localization contexts added as a wrapper. The localization contexts
were already added by the `renderWithProviders` helper function, but
there is no need for a Redux provider in these unit tests.
* Initial implementation of new SrpInput component
This new version of the SrpInput component uses a separate field for
each word of the SRP. Only one field can be revealed at a time, making
it less likely that it gets accidentally revealed to somebody.
* Fix copy mistakes
* Move container div from 'create vault' to 'srp-input', and setup grid layout
* Increase size of title
* Remove hard-coded width in Storybook to allow testing different viewport sizes
* Improve layout
* Improve margins
* Update dropdown text
* Expand SRP input section
* Remove unused localized messages
* Update dropdown option names in unit tests
* Replace checkbox with show/hide toggle
* Remove unused localized message
* Fix 'data-testid' prop name
* Fix e2e test imports using paste
* Use 'ActionableMessage' component for error message
* Convert error popover to actionable message
* Add tip about pasting the SRP
* Remove invalid prop
The "info" style of `ActionableMessage` is the default, so no type is
required.
* Use more readable test convenience methods
The method `toBeInTheDocument()` is now used over `not.toBeNull()` to
improve the readability of tests. Likewise, the convenience method
`.clear` is now used to clear fields rather than manually entering the
key combination to clear a field.
* Fix misspelled word
* deprecate extensionizer for webextension-polyfill
* fix tests
* remove extensionizer
* fix browser windows api calls
* fix broken on firefox
* fix getAcceptLanguages call
* update more browser apis that are now promisified
* remove unnecessary console error ignoring in e2e tests
* fix issue where we show contract address as recipient when calling safe transfer method on erc721 or erc1155 contracts
* updates function name getTransactionData -> parseStandardTokenTransactionData, and adds documentation
* Initial native notification implementation
* Simplify implementation
* Implementation based on RateLimitController
* Update controllers package
* Add notification to permission list
* Wire up correctly
* Remove snap_notify from the exclusion list