1. 17 Nov, 2022 1 commit
    • Robert Knight's avatar
      Assume annotations for other document segments will anchor · b4402316
      Robert Knight authored
      When annotations are loaded into the sidebar, they are not displayed in the
      "Annotations" tab immediately. Instead the client waits until the guest reports
      that the annotation was successfully anchored, or a timeout expires. This is to
      avoid annotations briefly appearing in the Annotations tab and then "jumping" to
      the Orphans tab a moment later if they fail to anchor.
      
      For annotations in document segments (eg. EPUB chapters) other than the one
      currently loaded in a guest frame, the annotation will never anchor in the
      guest, and so the annotation did not appear in the sidebar until the anchoring
      timeout expired. The result was that current-chapter annotations appeared
      quickly, and other-chapter annotations appeared in the sidebar several hundred
      ms later.
      
      This commit improves the experience by optimisitically assuming annotations
      in other chapters will anchor when the user navigates to those chapters, and
      immediately marking them as "anchored" in the store. If they fail to anchor
      when the user navigates to the chapter, then the status will be updated and
      the annotation will be marked as an orphan at that point.
      b4402316
  2. 16 Nov, 2022 4 commits
  3. 15 Nov, 2022 18 commits
  4. 14 Nov, 2022 14 commits
  5. 11 Nov, 2022 3 commits
    • Lyza Danger Gardner's avatar
      Convert PaginationNavigation to TS · 6471f316
      Lyza Danger Gardner authored
      6471f316
    • Lyza Danger Gardner's avatar
      Update shared components in `PaginationNavigation` · 55e561f4
      Lyza Danger Gardner authored
      In the future, the `NavigationButton` pattern should be extracted
      
      Special CSS class is no longer needed (removed).
      55e561f4
    • Robert Knight's avatar
      Avoid unloading annotations after VitalSource segment navigation · 8c80e65a
      Robert Knight authored
      Introduce the concept of "persistent" frames in the sidebar. This is a flag
      which can be set on a `Frame` in the sidebar's store to prevent annotations from
      being unloaded when the associated guest unloads. This flag is set in response
      to a hint provided by the `Guest` in its `documentInfoChanged` message. The
      guest in turn gets this hint via `Integration.persistFrame`, which returns true
      for VitalSource content frames.
      
      Marking VitalSource content frames as persistent prevents the book's annotations
      from being unloaded after a chapter navigation, when the old guest goes away,
      and then the same set of annotations immediately being re-fetched from the
      server when the new guest connects. This reload of annotations looked ugly but
      also lost the user's scroll position in the sidebar. With this change the
      sidebar retains the annotations during a chapter navigation and just re-sends
      the appropriate ones to the new guest when it connects.
      8c80e65a