1
1
// src/app/components/task.stories.ts
2
2
import { action } from '@storybook/addon-actions' ;
3
+ import { Story , Meta } from '@storybook/angular/types-6-0' ;
3
4
import { TaskComponent } from './task.component' ;
5
+ import { Task } from '../models/task.model' ;
6
+
4
7
export default {
5
8
title : 'Task' ,
6
9
excludeStories : / .* D a t a $ / ,
10
+ argTypes : {
11
+ state : {
12
+ control : {
13
+ type : 'inline-radio' ,
14
+ options : [ 'Task_INBOX' , 'TASK_PINNED' , 'TASK_ARCHIVED' ] ,
15
+ } ,
16
+ } ,
17
+ updated_at : { control : 'date' }
18
+ }
7
19
} ;
8
20
9
21
export const actionsData = {
@@ -17,35 +29,23 @@ export const taskData = {
17
29
state : 'Task_INBOX' ,
18
30
updated_at : new Date ( 2019 , 0 , 1 , 9 , 0 ) ,
19
31
} ;
20
- export const Default = ( ) => ( {
21
- component : TaskComponent ,
22
- props : {
23
- task : taskData ,
24
- onPinTask : actionsData . onPinTask ,
25
- onArchiveTask : actionsData . onArchiveTask ,
26
- } ,
27
- } ) ;
28
- // pinned task state
29
- export const Pinned = ( ) => ( {
30
- component : TaskComponent ,
31
- props : {
32
- task : {
33
- ...taskData ,
34
- state : 'TASK_PINNED' ,
35
- } ,
36
- onPinTask : actionsData . onPinTask ,
37
- onArchiveTask : actionsData . onArchiveTask ,
38
- } ,
32
+
33
+ const Template : Story < Task > = ( args : Task ) => ( {
34
+ component : TaskComponent ,
35
+ props : {
36
+ task : args ,
37
+ onPinTask : actionsData . onPinTask ,
38
+ onArchiveTask : actionsData . onArchiveTask ,
39
+ }
39
40
} ) ;
40
- // archived task state
41
- export const Archived = ( ) => ( {
42
- component : TaskComponent ,
43
- props : {
44
- task : {
45
- ...taskData ,
46
- state : 'TASK_ARCHIVED' ,
47
- } ,
48
- onPinTask : actionsData . onPinTask ,
49
- onArchiveTask : actionsData . onArchiveTask ,
50
- } ,
51
- } ) ;
41
+
42
+ export const Default = Template . bind ( { } ) ;
43
+ Default . args = taskData ;
44
+
45
+ // Pinned Task State
46
+ export const Pinned = Template . bind ( { } ) ;
47
+ Pinned . args = Object . assign ( { } , taskData , { state : "TASK_PINNED" } ) ;
48
+
49
+ // Archived Task State
50
+ export const Archived = Template . bind ( { } ) ;
51
+ Archived . args = Object . assign ( { } , taskData , { state : "TASK_ARCHIVED" } ) ;
0 commit comments