- 21 Dec, 2020 2 commits
-
-
dependabot-preview[bot] authored
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.2.2 to 2.2.6. - [Release notes](https://github.com/cure53/DOMPurify/releases) - [Commits](https://github.com/cure53/DOMPurify/compare/2.2.2...2.2.6) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [eslint](https://github.com/eslint/eslint) from 7.15.0 to 7.16.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.15.0...v7.16.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
- 18 Dec, 2020 7 commits
-
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
-
Robert Knight authored
https://github.com/hypothesis/client/pull/2837 caused a regression where the initial annotation filters would be cleared after groups where fetched for the first time. This is because `SidebarView` had logic to clear the selection/filters when switching groups. This used to work because `SidebarView` was only rendered after groups were initially rendered. This is no longer the case after #2837. Slack thread: https://hypothes-is.slack.com/archives/C1M8NH76X/p1608299842322000
-
- 17 Dec, 2020 3 commits
-
-
Robert Knight authored
Following https://github.com/hypothesis/client/pull/2837 the `SidebarView` component may now be rendered before the profile has been fetched. This component contains an effect which triggers the initial WebSocket connection. Since the WebSocket reconnects after the profile userid changes, this was causing the initial connection to almost immediately be disconnected if the user was logged in. Fix this by deferring the initial connection until after the profile has been fetched.
-
Robert Knight authored
Do not wait for groups and profile to load before calling `router.sync()` to set the initial route and thereby render the appropriate content component. Historically the main view components assumed that the user profile and groups were already loaded before they were rendered, but this is no longer the case. This fixes a brief flash of the sidebar's `TopBar` component inside the notebook when it initially loads. It also results in the `Annotations` and `Page Notes` tabs appearing immediately in the sidebar rather than waiting until the groups list is populated.
-
Robert Knight authored
`ThreadList` was measuring the height and scroll offset of the scroll container inside the render function instead of a layout effect. As a result it could fail if the scroll container is rendered by a parent component and its DOM has not yet been created. This issue was uncovered when trying to change the app to call `router.sync()` before waiting for `groups.load()` to complete. A test expectation had to be changed becaused it turned out that the scroll container had the wrong height when it was measured in the previous way (it was measured as 0px instead of the expected 350px).
-
- 16 Dec, 2020 6 commits
-
-
Robert Knight authored
There was no good reason for the separation between the two any more.
-
Robert Knight authored
- The logic for anchoring and generating range selectors provided by `range.js` has been replaced in `RangeAnchor`. - The normalization of DOM Ranges is no longer required by the rest of the code.
-
Robert Knight authored
Convert `RangeAnchor` to use `TextRange` and the XPath <-> Node mapping functions in xpath.js directly, rather than the `SerializedRange` and `NormalizedRange` classes. This change will mean that all conversion between text positions and (text node, offset) points in the client will use the same implementation. For `RangeAnchor` selectors this conversion is used for the `startOffset` and `endOffset` fields. The new implementation also avoids modifying the DOM, unlike the previous implementation which would sometimes split text nodes. Avoid DOM modifications during anchoring opens up the possibility of optimizing anchoring by caching text position <-> text node associations.
-
Robert Knight authored
https://github.com/hypothesis/client/pull/2818 inadvertently changed the size of the `.menu-toggle__icon` SVG element from 10x10px to 16x16px due to an `svg` selector introduced by the `buttons.button--icon-only` mixin taking precedence over the `.menu-toggle__icon` selector. As a result, the caret's vertical position was incorrect and it did not remain vertically centered when flipped. This commit nests the `.menu-toggle__icon` selector inside the parent `.menu-toggle` selector to restore the caret icon back to its 10x10 pixel size.
-
Robert Knight authored
Fix a typechecking error in `useRootThread`. `@return` has no effect when used above a variable initialized to a value that is not an arrow function or function expression. Therefore the type was inferred based on the `filterValues` local variable to be `{}`. Correct this to `Object.<string,string>` so that it matches up with the `ThreadState` type.
-
Robert Knight authored
Remove the need to define the type of store created by each module manually by adding a `StoreFromModule` helper in `create-store.js` which can infer the store type from a store module configuration. Using this the type of a store composed from several modules can then be created with: ``` import fooModule from './modules/foo'; import barModule from './modules/bar'; // Define type of store returned by `createStore([fooModule, barModule])` /** @typedef {StoreType<fooModule> & StoreType<barModule>} AppStore */ ``` Ideally `createStore` would just infer the type based upon its arguments. I haven't worked out how to do that yet. Nevertheless, this still removes the need for a lot of manually defined types. To ensure more useful error messages from TS if a store module's configuration has the wrong shape a `storeModule` helper has been added. This wraps the configuration for each module to check its shape before the individual modules are combined into one type for the store. This helper could also perform runtime validation in future. - Add `StoreFromModule` type in `create-store.js` and several helpers to support it - Modify each store module to wrap the export in `storeModule` and remove any manually defined store types
-
- 15 Dec, 2020 1 commit
-
-
Kyle Keating authored
- Fix issue where clicking the menu background showed a focus ring - Fix issue where buttons in the top-bar were not animating back from hover color - Prevent button animation from being applied to focus ring styling (caused issue in safari)
-
- 14 Dec, 2020 12 commits
-
-
Lyza Danger Gardner authored
Restructure the filters store module with the following goals in mind: * Simplify the structure of user-focus mode * Make the filtering structure for user-focus filters consistent with other filters * Add some actions and selectors for setting and getting filters, clearing the way to start adding some additional filtering * Be explicit about filter precedence Only one change here that affects the store's API and that is adjusted for in `useRootThread`.
-
dependabot-preview[bot] authored
Bumps [karma-browserify](https://github.com/nikku/karma-browserify) from 7.0.0 to 8.0.0. - [Release notes](https://github.com/nikku/karma-browserify/releases) - [Commits](https://github.com/nikku/karma-browserify/compare/v7.0.0...v8.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.0.4 to 10.1.0. - [Release notes](https://github.com/postcss/autoprefixer/releases) - [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/autoprefixer/compare/10.0.4...10.1.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.14 to 8.2.1. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.1.14...8.2.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/commits) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [commander](https://github.com/tj/commander.js) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/tj/commander.js/releases) - [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/tj/commander.js/compare/v6.2.0...v6.2.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [sinon](https://github.com/sinonjs/sinon) from 9.2.1 to 9.2.2. - [Release notes](https://github.com/sinonjs/sinon/releases) - [Changelog](https://github.com/sinonjs/sinon/blob/master/CHANGELOG.md) - [Commits](https://github.com/sinonjs/sinon/commits/v9.2.2) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.7 to 7.12.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-preset-env) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.804.0 to 2.809.0. - [Release notes](https://github.com/aws/aws-sdk-js/releases) - [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-js/compare/v2.804.0...v2.809.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.9 to 7.12.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-core) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.12.7 to 7.12.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-preset-react) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
Eduardo Sanz García authored
The text in the input element of the `annotation-share-control` is selected and focused when the element is created. This is to facilitate copy/paste via keyboard shorcuts. This selection/focus mechanism is working well except for iOS (both Chrome and Safari) where: * the selection/focus is not shown in the input field except by clicking on the input element. * the selection overflows the right margin of the input field I tested `overflow: hidden` on the input element but that causes the selection to overflow on the left margin Because of these two issues, I recommend to supress selection/focus on iOS devices.
-
- 11 Dec, 2020 9 commits
-
-
Robert Knight authored
For consistency, and because it is useful/straightforward to do, all of the `TextQuoteAnchor` tests now mock `matchQuote` but not `TextRange`, except for one integration test that is labeled as such.
-
Robert Knight authored
-
Robert Knight authored
Check the properties of the `TextQuoteAnchor` instance have expected values.
-
Robert Knight authored
-
Robert Knight authored
-
Robert Knight authored
Use the new matching algorithm for anchoring text quote selectors. This is faster than the existing one when many quote selectors fail to exactly match and gives us more insight into and control over the fuzzy matching process. - Use the `matchQuote` function to do find the best match for the quote in the text, replacing the `dom-anchor-text-quote` library. This resolves a problem where the browser could become unresponsive for a significant period of time when anchoring large numbers of annotations (hundreds) on pages where there have been significant changes in the content. In the "Public" group on http://www.americanyawp.com/text/01-the-new-world/ for example the client spends a total of ~2.4 seconds running JS in between starting the client and anchoring completing compared to ~11 seconds with the previous implementation. The new implementation also provides more control over the degree of mismatch between quote selector and document text that is allowed. The current settings provide higher recall (larger proportion of "correct" approximate matches found) than the previous implementation. On http://www.americanyawp.com/text/01-the-new-world/ for example the number of orphans dropped from 137 to 63. Finally the new library is also smaller. The minified `annotator.bundle.js` size is reduced by 15% (25KB). - Change `TextQuoteAnchor.fromSelector(...)` to generate the selector directly rather than delegating to `dom-anchor-text-quote`. This gives us more control over how quote selectors are generated and more easily change factors such as the amount of context included.
-
Robert Knight authored
All consumers now use the replacement `useStoreProxy` hook.
-
Robert Knight authored
Implement a `matchQuote` function which will be used to replace `dom-anchor-text-quote` for finding the best match for annotation quotes in the document text. The new implementation is based on the `approx-string-match` library and provides several improvements over the existing one: - Better performance when there are many differences between the quote and closest document text - It will be easier for us to tune the degree of mismatch allowed between the quote and document text and how candidate matches are ranked
-
dependabot-preview[bot] authored
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7. **This update includes a security fix.** - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-