1. 22 Jul, 2020 2 commits
    • Kyle Keating's avatar
      Improve typechecking for several components and their dependencies · e76b5470
      Kyle Keating authored
      - TagList
      - TagEditor
      - MarkdownEditor
      - Excerpt
      - AutocompleteList
      - AnnotationBody
      e76b5470
    • Kyle Keating's avatar
      Improve typechecking for Stores (#2347) · 6c76613c
      Kyle Keating authored
      Add SidebarStore type. This is an aggregation of the base ReduxStore + each one of our stores baked in. The fist store added here is simply the Activity store (as a first example)
      
      There are some assumptions when making store types:
      
      1. It is assumed they are transformed in `createStore` where the selectors and actions are flattened.
      
      2. Some meta data (namely, the init method, namespace and update method) are refactored or removed.
      
      These transformations are implied through the typing which explicitly ignores these methods and structure of the raw store before the transformation in create-store.
      6c76613c
  2. 21 Jul, 2020 17 commits
  3. 20 Jul, 2020 19 commits
  4. 17 Jul, 2020 2 commits
    • Lyza Danger Gardner's avatar
      b518fc6d
    • Lyza Danger Gardner's avatar
      Restructure focus-mode internal state and reduce API · 9f481f80
      Lyza Danger Gardner authored
      Refactor the way that focus-mode configuration is represented
      in state and whittle down the API (selectors and actions) a little
      for clarity.
      
      Reduce the object depth for the focus-mode state. Use a single
      function to configure focus mode. Concede that user-focus is the
      only focus mode for now, and as such valid focus-mode configuration
      must contain a (valid) user object.
      
      Note: There is still some lingering inconsistency in the user
      identifiers provided by the LMS app. Canvas speedgrader uses app
      settings to configure focus mode (`js-config` object) and sets
      the `username` property of the `user` object to a username-
      formatted value (i.e. a username, no authority indicated). Non-
      Canvas graders do not configure focus mode via the settings,
      but instead dispatch RPC messages. These pass a `username`
      property whose value is formatted like a userId
      (`acct:<username>@authority>`) but it still provided via
      the `username` property.
      
      AFAIK, nobody/no service sends a `userid` property in the
      focus-mode user object, but we document that we do support
      it so I've left it extant until we figure this out.
      9f481f80