Migrate TimerNotification to storybook
This commit is contained in:
		
					parent
					
						
							
								252c101e06
							
						
					
				
			
			
				commit
				
					
						fba8f7bf1e
					
				
			
		
					 3 changed files with 91 additions and 68 deletions
				
			
		|  | @ -1,67 +0,0 @@ | ||||||
| ### From other |  | ||||||
| 
 |  | ||||||
| ```jsx |  | ||||||
| <util.ConversationContext theme={util.theme}> |  | ||||||
|   <TimerNotification |  | ||||||
|     type="fromOther" |  | ||||||
|     phoneNumber="(202) 555-1000" |  | ||||||
|     profileName="Mr. Fire" |  | ||||||
|     title="Mr. Fire" |  | ||||||
|     timespan="1 hour" |  | ||||||
|     i18n={util.i18n} |  | ||||||
|   /> |  | ||||||
|   <TimerNotification |  | ||||||
|     type="fromOther" |  | ||||||
|     phoneNumber="(202) 555-1000" |  | ||||||
|     profileName="Mr. Fire" |  | ||||||
|     title="Mr. Fire" |  | ||||||
|     disabled={true} |  | ||||||
|     timespan="Off" |  | ||||||
|     i18n={util.i18n} |  | ||||||
|   /> |  | ||||||
| </util.ConversationContext> |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| ### You changed |  | ||||||
| 
 |  | ||||||
| ```jsx |  | ||||||
| <util.ConversationContext theme={util.theme}> |  | ||||||
|   <TimerNotification |  | ||||||
|     type="fromMe" |  | ||||||
|     phoneNumber="(202) 555-1000" |  | ||||||
|     title="(202) 555-1000" |  | ||||||
|     timespan="1 hour" |  | ||||||
|     i18n={util.i18n} |  | ||||||
|   /> |  | ||||||
|   <TimerNotification |  | ||||||
|     type="fromMe" |  | ||||||
|     phoneNumber="(202) 555-1000" |  | ||||||
|     title="(202) 555-1000" |  | ||||||
|     disabled={true} |  | ||||||
|     timespan="Off" |  | ||||||
|     i18n={util.i18n} |  | ||||||
|   /> |  | ||||||
| </util.ConversationContext> |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| ### Changed via sync |  | ||||||
| 
 |  | ||||||
| ```jsx |  | ||||||
| <util.ConversationContext theme={util.theme}> |  | ||||||
|   <TimerNotification |  | ||||||
|     type="fromSync" |  | ||||||
|     phoneNumber="(202) 555-1000" |  | ||||||
|     title="(202) 555-1000" |  | ||||||
|     timespan="1 hour" |  | ||||||
|     i18n={util.i18n} |  | ||||||
|   /> |  | ||||||
|   <TimerNotification |  | ||||||
|     type="fromSync" |  | ||||||
|     phoneNumber="(202) 555-1000" |  | ||||||
|     title="(202) 555-1000" |  | ||||||
|     disabled={true} |  | ||||||
|     timespan="Off" |  | ||||||
|     i18n={util.i18n} |  | ||||||
|   /> |  | ||||||
| </util.ConversationContext> |  | ||||||
| ``` |  | ||||||
							
								
								
									
										90
									
								
								ts/components/conversation/TimerNotification.stories.tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								ts/components/conversation/TimerNotification.stories.tsx
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | ||||||
|  | import * as React from 'react'; | ||||||
|  | import { storiesOf } from '@storybook/react'; | ||||||
|  | import { boolean, select, text } from '@storybook/addon-knobs'; | ||||||
|  | 
 | ||||||
|  | // @ts-ignore
 | ||||||
|  | import { setup as setupI18n } from '../../../js/modules/i18n'; | ||||||
|  | 
 | ||||||
|  | // @ts-ignore
 | ||||||
|  | import enMessages from '../../../_locales/en/messages.json'; | ||||||
|  | 
 | ||||||
|  | import { Props, TimerNotification } from './TimerNotification'; | ||||||
|  | 
 | ||||||
|  | const i18n = setupI18n('en', enMessages); | ||||||
|  | 
 | ||||||
|  | const story = storiesOf('Components/Conversation/TimerNotification', module); | ||||||
|  | 
 | ||||||
|  | const createProps = (overrideProps: Partial<Props> = {}): Props => ({ | ||||||
|  |   i18n, | ||||||
|  |   type: select( | ||||||
|  |     'type', | ||||||
|  |     { | ||||||
|  |       fromOther: 'fromOther', | ||||||
|  |       fromMe: 'fromMe', | ||||||
|  |       fromSync: 'fromSync', | ||||||
|  |     }, | ||||||
|  |     overrideProps.type || 'fromOther' | ||||||
|  |   ), | ||||||
|  |   phoneNumber: | ||||||
|  |     text('phoneNumber', overrideProps.phoneNumber || '') || undefined, | ||||||
|  |   profileName: | ||||||
|  |     text('profileName', overrideProps.profileName || '') || undefined, | ||||||
|  |   title: text('title', overrideProps.title || ''), | ||||||
|  |   name: text('name', overrideProps.name || '') || undefined, | ||||||
|  |   disabled: boolean('disabled', overrideProps.disabled || false), | ||||||
|  |   timespan: text('timespan', overrideProps.timespan || ''), | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | story.add('Set By Other', () => { | ||||||
|  |   const props = createProps({ | ||||||
|  |     type: 'fromOther', | ||||||
|  |     phoneNumber: '(202) 555-1000', | ||||||
|  |     profileName: 'Mr. Fire', | ||||||
|  |     title: 'Mr. Fire', | ||||||
|  |     timespan: '1 hour', | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   return ( | ||||||
|  |     <> | ||||||
|  |       <TimerNotification {...props} /> | ||||||
|  |       <div style={{ padding: '1em' }} /> | ||||||
|  |       <TimerNotification {...props} disabled timespan="Off" /> | ||||||
|  |     </> | ||||||
|  |   ); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | story.add('Set By You', () => { | ||||||
|  |   const props = createProps({ | ||||||
|  |     type: 'fromMe', | ||||||
|  |     phoneNumber: '(202) 555-1000', | ||||||
|  |     profileName: 'Mr. Fire', | ||||||
|  |     title: 'Mr. Fire', | ||||||
|  |     timespan: '1 hour', | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   return ( | ||||||
|  |     <> | ||||||
|  |       <TimerNotification {...props} /> | ||||||
|  |       <div style={{ padding: '1em' }} /> | ||||||
|  |       <TimerNotification {...props} disabled timespan="Off" /> | ||||||
|  |     </> | ||||||
|  |   ); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | story.add('Set By Sync', () => { | ||||||
|  |   const props = createProps({ | ||||||
|  |     type: 'fromSync', | ||||||
|  |     phoneNumber: '(202) 555-1000', | ||||||
|  |     profileName: 'Mr. Fire', | ||||||
|  |     title: 'Mr. Fire', | ||||||
|  |     timespan: '1 hour', | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   return ( | ||||||
|  |     <> | ||||||
|  |       <TimerNotification {...props} /> | ||||||
|  |       <div style={{ padding: '1em' }} /> | ||||||
|  |       <TimerNotification {...props} disabled timespan="Off" /> | ||||||
|  |     </> | ||||||
|  |   ); | ||||||
|  | }); | ||||||
|  | @ -19,7 +19,7 @@ type PropsHousekeeping = { | ||||||
|   i18n: LocalizerType; |   i18n: LocalizerType; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| type Props = PropsData & PropsHousekeeping; | export type Props = PropsData & PropsHousekeeping; | ||||||
| 
 | 
 | ||||||
| export class TimerNotification extends React.Component<Props> { | export class TimerNotification extends React.Component<Props> { | ||||||
|   public renderContents() { |   public renderContents() { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sidney Keese
				Sidney Keese