- 22 Apr, 2021 1 commit
-
-
Robert Knight authored
Change the way that links pointing into the Hypothesis service (eg. for tags, users, account settings etc.) are fetched and generated. The new implementation better matches patterns used elsewhere in the application and ensures that UI components displaying these links re-render if the `/api/links` response is received after the component is initially rendered. - Move the logic for rendering the URL templates from the `serviceUrl` service into a selector in the `links` store module. Components then render links using `store.getLink(...)`. This ensures use of the existing mechanism that re-renders components when relevant store data changes. - Convert the `serviceUrl` service to an ES class - Move the logic for fetching URL templates from the `/api/links` endpoint into an `init` method of the `ServiceURLService` service. This matches the convention used by several other services. - Remove unused `serviceUrl` dependency from `groups` service
-
- 20 Apr, 2021 11 commits
-
-
Robert Knight authored
As noted in a comment, the check is mainly intended to prevent infinite loops in tests.
-
Robert Knight authored
The name options implies a misc bag of optional properties, whereas this is a mandatory set of callbacks.
-
Robert Knight authored
This found a mistake in the types of several references to the document URI, which is not always present.
-
Robert Knight authored
This found an error in some of the existing types in the `api` service.
-
Robert Knight authored
Refactor this class to new conventions as part of https://github.com/hypothesis/client/issues/3298. - Convert the `auth` service to an ES class - Replace the internal `emitter` variable with inheritance - Rename the module from `oauth-auth.js` to just `auth.js`. The previous name is a vestige from when authorization was migrated from cookie-based to OAuth-based
-
Robert Knight authored
-
Robert Knight authored
- Convert `features` service to a class - Remove the unused `flagEnabled` method. Calls to this method have gradually been replaced by `store.isFeatureEnabled`. - Move the initialization of the background sidebar => annotator synchronization of feature flag information into an `init` method which is then called from the sidebar's entry point. This pattern is consistent with several other services. It is also necessary for services that are not depended upon by anything else because services are lazily instantiated.
-
Robert Knight authored
Put all the initialization logic in one place instead of spreading it between the constructor and `init` method.
-
Robert Knight authored
Part of https://github.com/hypothesis/client/issues/3298
-
Robert Knight authored
Part of https://github.com/hypothesis/client/issues/3298
-
Robert Knight authored
This conversion revealed some incorrect and inconsistent types. - The `filter` method was documented to return `Tag`s but actually returned strings - The `store` method required a list of `Tag`s but only used the `text` property from it. This method has been simplified to just accept a list of tag strings instead. Part of https://github.com/hypothesis/client/issues/3298
-
- 19 Apr, 2021 9 commits
-
-
Robert Knight authored
Part of https://github.com/hypothesis/client/issues/3298 In the process an issue was uncovered where an annotation could incorrectly be created without a group if there was no focused group. Address the issue by throwing an error in `AnnotationsService#create` if there is no focused group. Handling the situation in a context-appropriate way is left an exercise for higher-level code.
-
Robert Knight authored
Part of https://github.com/hypothesis/client/issues/3298
-
Robert Knight authored
Convert `localStorage` class to an ES class and add types to various places where it is referenced. Part of https://github.com/hypothesis/client/issues/3298.
-
Lyza Danger Gardner authored
Instead, use SASS from `frontend-shared` package
-
Lyza Danger Gardner authored
These shared button components have been moved to the `frontend-shared` package.
-
Lyza Danger Gardner authored
-
dependabot[bot] authored
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.884.0 to 2.888.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.884.0...v2.888.0) Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [sass](https://github.com/sass/dart-sass) from 1.32.8 to 1.32.10. - [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.32.8...1.32.10) Signed-off-by: dependabot[bot] <support@github.com>
-
dependabot[bot] authored
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.2.6 to 1.2.7. - [Release notes](https://github.com/actions/toolkit/releases) - [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core) Signed-off-by: dependabot[bot] <support@github.com>
-
- 16 Apr, 2021 12 commits
-
-
Lyza Danger Gardner authored
-
Robert Knight authored
Update `StreamFilter` class to current service conventions. Part of https://github.com/hypothesis/client/issues/3298.
-
Robert Knight authored
Mock `retryPromiseOperation` in APIRoutesService tests to speed up tests where the operation is retried multiple times.
-
Robert Knight authored
The customized result for the first stub call was not used because a more specific response was defined earlier using `withArgs`.
-
Robert Knight authored
Follow the pattern introduced in https://github.com/hypothesis/client/pull/3296 to convert the API routes service to a class and improve various types along the way.
-
Eduardo Sanz García authored
The only way to kill `yarn test --watch` is sending a SIGINT via a <kbd>Ctrl</kbd>+<kbd>C</kbd> keyboard shorcut. Killing karma process in this way sometimes leaves the parent gulp process orphan. That's because when karma is killed by SIGINT sometimes doesn't run the `done` in the callback, hence leaving the gulp process waiting for the `done` signal. On more rare occasions, I have seen orphan karma process too. The solution presented here registers a listener for SIGINT and call the `done` function. It doesn't unregister the event.
-
Robert Knight authored
Add tests for logic in Guest related to focusing/selecting annotation cards in the sidebar when the corresponding highlights in the document are hovered.
-
Robert Knight authored
Previously there were three public methods for setting the selected annotations in the sidebar and opening it, but only one was used outside of `Guest` and there was an inconsistency when toggling vs selecting normally. - Combine the `showAnnotations`, `toggleAnnotationSelection` and `selectAnnotations` method into a single `selectAnnotations` method with a `toggle` parameter - Add tests for `selectAnnotations` - Fix an inconsistency where selecting an annotation without holding Ctrl to toggle the selection would open the sidebar, but selecting an annotation with Ctrl to toggle the selection did not
-
Robert Knight authored
-
Robert Knight authored
Give this method a name that more obviously explains what it does.
-
Robert Knight authored
Make the distinction between the private and public API for Guest clearer by marking private fields clearly.
-
Robert Knight authored
- Convert toastMessenger service to an ES class using a named export - Specify type of `toastMessenger` references to this service
-
- 15 Apr, 2021 7 commits
-
-
Kyle Keating authored
Change loadServiceSpecifiedGroups() so that it can pass along an optional group ID setting value from the `directLinkedGroupId` selector to be an initially focused group. When loading groups from a service e.g. `loadServiceSpecifiedGroups`, previously it assumed that the `directLinkedGroupId` value would never be used in this context. Since the introduction of the Notebook and specifically in the context of LMS, we have both a service setting which contains the groups (`settings.services[0].groups <Promise>`) and a top level group to set focus too. (`settings.group`).
-
Robert Knight authored
-
Robert Knight authored
Set a Z-index that is sufficient to make the dialog appear on top of other content in the sidebar, mainly the top bar. We will likely have to revise this if `confirm` is used in other contexts in future.
-
Robert Knight authored
Convert existing uses of `window.confirm` to use our own `confirm` utility which uses the standard Dialog from our pattern library. Using our own prompt avoids an immediate problem that browsers, starting with Chrome v91, are starting to block the use of `window.confirm` in third-party iframe. It also makes the visual design of the prompt match the rest of the application.
-
Robert Knight authored
-
Robert Knight authored
Import the Dialog component from the LMS frontend, adjusted to avoid dependencies on some shared variables that were specific to that application.
-
Robert Knight authored
- Introduce a union type for current route names - Use `Record<Key, Value>` rather than `Object.<Key, Value>` as it is stricter (eg. it is non-nullable)
-