- 10 Dec, 2020 1 commit
-
-
Robert Knight authored
-
- 09 Dec, 2020 12 commits
-
-
Robert Knight authored
Make several improvements following PR review.
-
Robert Knight authored
Implement a new `useStoreProxy` hook that provides access to read and update the store in UI components. This will replace the existing `useStore` hook. The new hook has a more ergonomic API which should also prevent some of the common mistakes made when using the previous hook. `useStoreProxy` returns an ES proxy for the store. The UI component can use the proxy as if it were using the store directly. The proxy however tracks and caches the results of store selector calls. When the store state changes the proxy checks whether any of the cached calls would return different results and if so invalidates the cache and re-renders the component.
-
Robert Knight authored
This makes store updates faster in debug builds when a lot of data is loaded into the client. In this case most sub-trees in the store are already frozen after an update (since they are objects from the previous state) and only the new parts need to be frozen.
-
Robert Knight authored
Replace remaining uses of `store.getState()` in UI components with selectors. This will avoid unnecessary re-rendering after we change components to use the new `useStoreProxy` hook for reading from the store. It also simplifies the tests.
-
Robert Knight authored
Profiling anchoring of large numbers of annotations in Chrome showed that there was significant overhead for scheduling and executing `requestAnimationFrame` callbacks. In the case of `Guest.anchor`, the callback often did nothing (it called `removeHighlights` with an empty array). There isn't a need for this any more AFAICS so just invoke the logic synchronously, which is much cheaper.
-
Robert Knight authored
This was recomputing frequently even though the result only changes when the selected tab changes.
-
Lyza Danger Gardner authored
Also convert `selectionState` to use `createSelector` to avoid it returning a different reference on each call.
-
Lyza Danger Gardner authored
Remove unused selector and tidy up reference ordering
-
Lyza Danger Gardner authored
Refactor selectors for evaluating `hasAppliedFilter` to remove cross-module state dependencies.
-
Lyza Danger Gardner authored
Eliminate the enormous `threadState` `rootSelector` and re-implement as multiple selectors. Refactor `useRootThread` and threading integration tests to account for these changes.
-
Lyza Danger Gardner authored
Refactor the computation of "filter state", that is, all of the store state that impacts what constitutes applied filters on annotations.
-
Lyza Danger Gardner authored
The `selection` store module has become overlong and its responsibilities aren't clear. We know we'll be adding some more filtering capabilities to the app in the next short while, and that would make `selection` even more complex and heavy. Split into two store modules: `selection` and `filters`. Temporarily re-implement `rootSelector`s that are needed for generating thread and filter state for components.
-
- 08 Dec, 2020 2 commits
-
-
Robert Knight authored
The name `dir` is arguably ambiguous in this context.
-
Robert Knight authored
When resolving a `TextRange` to a DOM `Range` there is an edge case where the `start` or `end` position have an `offset` of `0` and the element contains no text nodes. Before this commit `toRange` would throw an `Offset exceeds text length` error. A more useful behavior though is: - For the `start` position, to resolve it to the start of the next text node after `this.start.element` - For the `end` position, to resolve it to the end of the previous text node before `this.end.element` This commit implements this behavior by first adding a `dir` option to `TextPosition.resolve` to control what happens when the position's offset is 0 and the element has no text and then specifying this option when calling `this.{start, end}.resolve` in `TextRange.toRange`.
-
- 07 Dec, 2020 9 commits
-
-
dependabot-preview[bot] authored
Bumps [mustache](https://github.com/janl/mustache.js) from 4.0.1 to 4.1.0. - [Release notes](https://github.com/janl/mustache.js/releases) - [Changelog](https://github.com/janl/mustache.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/janl/mustache.js/compare/v4.0.1...v4.1.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.2 to 7.0.3. - [Release notes](https://github.com/kentcdodds/cross-env/releases) - [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md) - [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.2...v7.0.3) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [@sentry/browser](https://github.com/getsentry/sentry-javascript) from 5.27.6 to 5.29.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/5.27.6...5.29.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.10 to 8.1.14. - [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.10...8.1.14) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [core-js](https://github.com/zloirock/core-js) from 3.8.0 to 3.8.1. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/compare/v3.8.0...v3.8.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [sass](https://github.com/sass/dart-sass) from 1.29.0 to 1.30.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.29.0...1.30.0) 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.799.0 to 2.804.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.799.0...v2.804.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [eslint](https://github.com/eslint/eslint) from 7.14.0 to 7.15.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.14.0...v7.15.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
dependabot-preview[bot] authored
Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 18.0.9 to 18.0.12. - [Release notes](https://github.com/octokit/rest.js/releases) - [Commits](https://github.com/octokit/rest.js/compare/v18.0.9...v18.0.12) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-
- 04 Dec, 2020 1 commit
-
-
Eduardo Sanz García authored
On iOS the element must be an `input` (or `textarea`) and with attribute `'contenteditable'` Closes #858
-
- 03 Dec, 2020 9 commits
-
-
Lyza Danger Gardner authored
Previously, tab selection for direct-linked annotations was happening before anchoring was complete—that means that orphaned annotations had not yet been marked as being orphans (`$orphan`). Make sure that direct-linked tab selection is checked any time the direct-linked annotation changes. Also fix a UI confusion in which the "Show All" button would show the count of all annotations in this (direct-linked) state, which is confusing because orphans don't count toward "All annotations" (nor do page notes, FWIW). Fixes #2686
-
Eduardo Sanz García authored
As indicated by @robertknight `document.styleSheets` is complete only when stylessheets are processed. This can take a while for certain heavy pages. The alternative approach presented here to find `annotation.css` is warranted to find the url when the code is run. Closes #2752
-
Robert Knight authored
- Add comment to explain purpose of `index.js` - Use a template string for readability
-
Robert Knight authored
This feature is now enabled by default.
-
Robert Knight authored
Per discussion on the PR, it is preferable to put markup and JS in the dev server in external files rather than as string literals in `serve-dev.js`. This enables them to be edited without having to restart the dev server. - Extract shared functions for loading and unloading client into `scripts/util.js` - Move logic specific to the index template into `scripts/index.js`.
-
Robert Knight authored
Adding a custom attribute without a `data-` prefix could potentially cause headaches for publishers running their code through HTML validation tools.
-
Robert Knight authored
The toggle button only exists on the index page. Also I fixed an issue where an incorrect variable name went unnoticed due to DOM element IDs creating global variables (sigh).
-
Robert Knight authored
Add a button to the dev server to facilitate easy testing of unloading and re-loading the client, as done by the browser extension and also some third-party pages.
-
Robert Knight authored
Ensure that all links, script and stylesheet elements added to the page by the boot script are removed when the client is unloaded. This fixes a problem where the recently added `<link>` for the notebook app was not removed when the page was unloaded, causing attempts to activate the browser extension on a page where the client had previously been loaded and then removed, to fail. The implementation works by tagging all elements with a `hypothesis-asset` attribute in the boot script and then removing these elements when the client is unloaded.
-
- 02 Dec, 2020 1 commit
-
-
Eduardo Sanz García authored
On mobile devices, reseting the zoom level (pinch gesture) leaves a one pixel gap between the bucket-bar and the iframe. By adding one extra pixel to the width of the bucket-bar we eliminate this issue.
-
- 30 Nov, 2020 5 commits
-
-
Lyza Danger Gardner authored
-
Lyza Danger Gardner authored
Add a pressure valve to keep from loading too many annotations in groups that have a large number of annotations.
-
Lyza Danger Gardner authored
Replace iframe in `Notebook` if `groupId` changes
-
Lyza Danger Gardner authored
`load` was written with `SidebarView` in mind, assuming the presence of both a `groupId` and one or more `uris`. This allows the loading of all annotations that pertain to a specific group on one or more specific document URIs. For Notebook, we'd like to be able to, initially, load all annotations for a `group` but for all document URIs. Make `load` take `options` instead of individual search arguments. Leave requirement for a `groupId` in place for now.
-
dependabot-preview[bot] authored
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.9 to 8.1.10. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/master/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.1.9...8.1.10) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
-