Add a base class for Spina-based components.

Review Request #13588 — Created Feb. 28, 2024 and submitted

Information

Ink
master

Reviewers

This introduces BaseComponentView, which is a Spina base class that
makes it easy to write components. It subclasses BaseView and provides
formal support for:

  1. Capturing initial construction state (options, whether a component
    was instantiated via crafting, and storage of children and
    subcomponents).

  2. Rendering management that tears down the initial state post-render.

  3. Utilities for storing subcomponent children when crafting (though
    this is subject to change in the future).

All Ink components will derive from this class.

Unit tests pass.

Made use of this in the development of new components.

Summary ID
Add a base class for Spina-based components.
This introduces `BaseComponentView`, which is a Spina base class that makes it easy to write components. It subclasses `BaseView` and provides formal support for: 1. Capturing initial construction state (options, whether a component was instantiated via crafting, and storage of children and subcomponents). 2. Rendering management that tears down the initial state post-render. 3. Utilities for storing subcomponent children when crafting (though this is subject to change in the future). All Ink components will derive from this class.
1d8d1b9a9f1ef2bd21952006a061fd40cd1592a8
Description From Last Updated

We generally are using TOptions instead of OptionsT

daviddavid

Got a mix here. Let's use TElement and TOptions

daviddavid
david
  1. 
      
  2. Show all issues

    We generally are using TOptions instead of OptionsT

  3. src/ink/js/components/views/baseComponentView.ts (Diff revision 1)
     
     
     
     
    Show all issues

    Got a mix here. Let's use TElement and TOptions

  4. 
      
chipx86
david
  1. Ship It!
  2. 
      
maubin
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to master (3693193)