@net-advantage/jo-ui-select
v2.1.0
Published
Publishable SelectField package.
Readme
@net-advantage/jo-ui-select
Publishable SelectField package.
The field follows a strict MVVM split. The model owns the class name. The view-model owns the disabled click guard. The view renders the view-model.
MVVM
flowchart LR
Props["SelectFieldProps"] --> ViewModel["useSelectFieldViewModel"]
Model["select.model.ts<br/>class name"] --> ViewModel
ViewModel --> View["SelectField.tsx"]
View -->|"onClick"| ViewModel
ViewModel -->|"onClick"| Host["Host application"]| Layer | File | Responsibility |
| --- | --- | --- |
| Contract | jo-ui-select.types.ts | Props and view-model |
| Model | select.model.ts | Join the root class name |
| View-model | select.view-model.ts | Framework-free select observable; guard a disabled click |
| View | select.use-view-model.ts | useSelectFieldViewModel reads that observable |
| View | SelectField.tsx | Render the field from the view-model |
Models
flowchart TD
Props["SelectFieldProps"] --> ViewModel["SelectFieldViewModel"]
ClassName["className"] --> ViewModel
Click["onClick"] --> Guard["disabled guard"]
Guard --> ViewModelSelectFieldPropsis an id, a required label, disabled, class name, and click callback.SelectFieldViewModelis that same surface after defaults. Disabled defaults to false.- A disabled field does not call
onClick.
Structure
- src: runtime component, model, view-model, and types.
- stories: Storybook stories for docs and visual testing.
Publish footprint
This package publishes only:
- dist
- README.md
