Remove the @spina decorator on abstract classes.

Review Request #107 — Created April 26, 2024 and updated

Information

Review Board
36582ec...

Reviewers

`BaseVisibilityActionView` was decorated with `@spina`, which isn't
technically allowed.

`@spina` should only be applied to classes that can be instantiated. For
abstract classes, we either want to use the parent class's Spina
information or use `spinaBaseClassExtends` to define a new top-level
class.

It seems that, by and large, decorators can't be used with abstract
classes. When compiling, we get basically:

```javascript
const foo = abstract class Foo {}
```

This is a syntax error in JavaScript.

The reason we didn't encounter this problem before is that Babel was
stripping out the `abstract` when it processed the TypeScript and
compiled to JavaScript. The TypeScript compiler leaves it in, in order
to try to wrap it in a decorator.

Going forward, we'll need to be careful not to decorate these classes.

Testing Done:
Unit tests pass.

Verified that this no longer broke the build when compiled via
ESBuild and Storybook.

Reviewed at https://reviews.reviewboard.org/r/13738/

afdfsdf

Description From Last Updated

some problem

guest7226guest7226
guest7226
Review request changed

Testing Done:

  +

afdfsdf

guest7226
  1. 
      
  2. Show all issues

    some problem

  3. 
      
Loading...