2021-04-19 16:57:19 +00:00
/* eslint-disable import/no-extraneous-dependencies */
2020-02-11 14:01:35 +00:00
import React from 'react' ;
import { ScrollView , StyleSheet , SafeAreaView } from 'react-native' ;
2021-04-19 16:57:19 +00:00
import { storiesOf } from '@storybook/react-native' ;
2020-02-11 14:01:35 +00:00
import { UiKitModal , UiKitComponent } from '../../app/containers/UIKit' ;
import { KitContext , defaultContext } from '../../app/containers/UIKit/utils' ;
2021-04-19 16:57:19 +00:00
import MessageContext from '../../app/containers/message/Context' ;
import { themes } from '../../app/constants/colors' ;
2020-02-11 14:01:35 +00:00
const styles = StyleSheet . create ( {
container : {
flex : 1 ,
backgroundColor : '#fff'
} ,
padding : {
paddingHorizontal : 16
}
} ) ;
2021-04-19 16:57:19 +00:00
const user = {
id : 'y8bd77ptZswPj3EW8' ,
username : 'diego.mello' ,
token : '79q6lH40W4ZRGLOshDiDiVlQaCc4f_lU9HNdHLAzuHz'
} ;
const baseUrl = 'https://open.rocket.chat' ;
const messageDecorator = story => (
< MessageContext . Provider
value = { {
user ,
baseUrl ,
onPress : ( ) => { } ,
onLongPress : ( ) => { } ,
reactionInit : ( ) => { } ,
onErrorPress : ( ) => { } ,
replyBroadcast : ( ) => { } ,
onReactionPress : ( ) => { } ,
onDiscussionPress : ( ) => { } ,
onReactionLongPress : ( ) => { } ,
threadBadgeColor : themes . light . tunreadColor
} }
>
{ story ( ) }
< / M e s s a g e C o n t e x t . P r o v i d e r >
) ;
const stories = storiesOf ( 'UiKitModal' , module )
. addDecorator ( story => < SafeAreaView style = { styles . container } > { story ( ) } < / S a f e A r e a V i e w > )
. addDecorator ( story => < ScrollView style = { [ styles . container , styles . padding ] } keyboardShouldPersistTaps = 'always' > { story ( ) } < / S c r o l l V i e w > )
. addDecorator ( messageDecorator ) ;
const ModalSectionSelects = ( ) => UiKitModal ( [
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : '*Rocket.Chat is free, unlimited and open source* 🚀\nIf you have any doubt ask to @rocketcat'
}
} ,
{
type : 'divider'
} ,
{
type : 'section' ,
fields : [
2020-02-11 14:01:35 +00:00
{
2021-04-19 16:57:19 +00:00
type : 'mrkdwn' ,
text : '*Text 1*\nDescription, Mussum Ipsum, cacilds vidis litro'
} ,
{
type : 'mrkdwn' ,
text : '*Text 2*\nDescription, Mussum Ipsum, cacilds vidis litro'
2020-02-11 14:01:35 +00:00
}
2021-04-19 16:57:19 +00:00
]
} ,
{
type : 'section' ,
fields : [
2020-02-11 14:01:35 +00:00
{
2021-04-19 16:57:19 +00:00
type : 'mrkdwn' ,
text : '*Text 3*\nDescription, Mussum Ipsum, cacilds vidis litro'
} ,
{
type : 'mrkdwn' ,
text : '*Text 4*\nDescription, Mussum Ipsum, cacilds vidis litro'
2020-02-11 14:01:35 +00:00
}
2021-04-19 16:57:19 +00:00
]
}
] ) ;
stories . add ( 'Modal - Section and Selects' , ( ) => < ModalSectionSelects / > ) ;
2020-02-11 14:01:35 +00:00
2021-04-19 16:57:19 +00:00
const ModalSectionAccessories = ( ) => UiKitModal ( [
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : '*Bruno Quadros*,\nPlease review your details for your *travel expense*.\nExpense no. *DA921*.'
} ,
accessory : {
type : 'image' ,
imageUrl : 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png'
}
} ,
{
type : 'divider'
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : '*Date:*\n11/02/2020'
}
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : '*Category:*\nTravel'
}
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : '*Cost:*\n$150.00 USD'
}
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : '*Notes:*\nWebSummit Conference'
}
}
] ) ;
stories . add ( 'Modal - Section Accessories' , ( ) => < ModalSectionAccessories / > ) ;
const ModalFormInput = ( ) => UiKitModal ( [
{
type : 'input' ,
element : {
type : 'plain_text_input'
} ,
label : {
type : 'plain_text' ,
text : 'Outgoing Title' ,
emoji : true
} ,
hint : {
type : 'plain_text' ,
text : 'Pick something unique!' ,
emoji : true
}
} ,
{
type : 'input' ,
element : {
type : 'datepicker' ,
initial _date : '1990-04-28' ,
placeholder : {
type : 'plain_text' ,
text : 'Select a date' ,
emoji : true
2020-02-11 14:01:35 +00:00
}
2021-04-19 16:57:19 +00:00
} ,
label : {
type : 'plain_text' ,
text : 'Set a date' ,
emoji : true
}
} ,
{
type : 'input' ,
element : {
type : 'multi_static_select' ,
options : [ {
text : {
type : 'plain_text' ,
text : 'John'
} ,
value : 1
} , {
text : {
type : 'plain_text' ,
text : 'Dog'
} ,
value : 2
} ]
} ,
label : {
type : 'plain_text' ,
text : 'Share with...' ,
emoji : true
}
}
] ) ;
stories . add ( 'Modal - Form Input' , ( ) => < ModalFormInput / > ) ;
2020-02-11 14:01:35 +00:00
2021-04-19 16:57:19 +00:00
const ModalFormTextArea = ( ) => UiKitModal ( [
{
type : 'context' ,
elements : [ {
type : 'mrkdwn' ,
text : 'Task: ZOL-994'
} ]
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : 'Update Spec final assets'
} ,
accessory : {
type : 'button' ,
text : {
type : 'plain_text' ,
text : 'Change'
2020-02-11 14:01:35 +00:00
}
2021-04-19 16:57:19 +00:00
}
} ,
{
type : 'divider'
} ,
{
type : 'input' ,
element : {
type : 'plain_text_input' ,
multiline : true
} ,
placeholder : {
type : 'plain_text' ,
text : 'Write Something' ,
emoji : true
} ,
label : {
type : 'plain_text' ,
text : 'Notes' ,
emoji : true
} ,
hint : {
type : 'plain_text' ,
text : 'Please take the time to compose something short' ,
emoji : true
} ,
description : {
type : 'plain_text' ,
text : 'Describe your update' ,
emoji : true
}
}
] ) ;
stories . add ( 'Modal - Form TextArea' , ( ) => < ModalFormTextArea / > ) ;
2020-02-11 14:01:35 +00:00
2021-04-19 16:57:19 +00:00
const ModalImages = ( ) => UiKitModal ( [
{
type : 'image' ,
title : {
type : 'plain_text' ,
text : 'Example Image' ,
emoji : true
} ,
imageUrl : 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png' ,
alt _text : 'Example Image'
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : 'How could be the life in Mars?'
}
} ,
{
type : 'context' ,
elements : [
2020-02-11 14:01:35 +00:00
{
2021-04-19 16:57:19 +00:00
type : 'image' ,
imageUrl : 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png'
} ,
{
type : 'mrkdwn' ,
text : 'November 25, 2019'
2020-02-11 14:01:35 +00:00
}
2021-04-19 16:57:19 +00:00
]
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : '*Next stop, Mars!*\nMussum Ipsum, cacilds vidis litro abertis. Admodum accumsan disputationi eu sit. Vide electram sadipscing et per. Diuretics paradis num copo é motivis de denguis. Mais vale um bebadis conhecidiss, que um alcoolatra anonimis. Aenean aliquam molestie leo, vitae iaculis nisl.'
}
}
] ) ;
stories . add ( 'Modal - Images' , ( ) => < ModalImages / > ) ;
2020-02-11 14:01:35 +00:00
2021-04-19 16:57:19 +00:00
const ModalActions = ( ) => UiKitModal ( [ {
type : 'input' ,
element : {
type : 'plain_text_input'
} ,
label : {
type : 'plain_text' ,
text : 'Title' ,
emoji : true
}
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : 'Details'
}
} ,
{
type : 'section' ,
accessory : {
type : 'static_select' ,
options : [
2020-02-11 14:01:35 +00:00
{
2021-04-19 16:57:19 +00:00
value : 1 ,
text : {
type : 'plain_text' ,
text : 'TypeL Task'
}
} , {
value : 2 ,
text : {
type : 'plain_text' ,
text : 'second button'
}
} ]
}
} ,
{
type : 'section' ,
accessory : {
type : 'static_select' ,
options : [
{
value : 1 ,
text : {
type : 'plain_text' ,
text : 'Project: Space (winter)'
}
} , {
value : 2 ,
text : {
type : 'plain_text' ,
text : 'second button'
}
} ]
}
} ,
{
type : 'section' ,
accessory : {
type : 'static_select' ,
options : [
{
value : 1 ,
text : {
type : 'plain_text' ,
text : 'Priority (optional)'
}
} , {
value : 2 ,
text : {
type : 'plain_text' ,
text : 'second button'
}
} ]
}
} ,
{
type : 'section' ,
accessory : {
type : 'static_select' ,
options : [
{
value : 1 ,
text : {
type : 'plain_text' ,
text : 'Assinee (optional)'
}
} , {
value : 2 ,
text : {
type : 'plain_text' ,
text : 'second button'
}
} ]
}
} ,
{
type : 'input' ,
element : {
type : 'plain_text_input' ,
multiline : true
} ,
placeholder : {
type : 'plain_text' ,
text : 'Write Something' ,
emoji : true
} ,
label : {
type : 'plain_text' ,
text : 'Description' ,
emoji : true
}
} ] ) ;
stories . add ( 'Modal - Actions' , ( ) => < ModalActions / > ) ;
const ModalContextsDividers = ( ) => UiKitModal ( [
{
type : 'context' ,
elements : [ {
type : 'mrkdwn' ,
text : 'Due today'
} ]
} ,
{
type : 'divider'
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : 'Finish interface componests (3 hours)'
} ,
accessory : {
blockId : 'overflow-1' ,
type : 'overflow' ,
options : [
{
text : {
2020-02-11 14:01:35 +00:00
type : 'plain_text' ,
2021-04-19 16:57:19 +00:00
text : 'Details' ,
2020-02-11 14:01:35 +00:00
emoji : true
2021-04-19 16:57:19 +00:00
} ,
value : 'value-0'
2020-02-11 14:01:35 +00:00
} ,
{
text : {
2021-04-19 16:57:19 +00:00
type : 'plain_text' ,
text : 'Remove' ,
emoji : true
} ,
value : 'value-1'
}
]
}
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : 'English Class (1 hour)'
} ,
accessory : {
blockId : 'overflow-2' ,
type : 'overflow' ,
options : [
2020-02-11 14:01:35 +00:00
{
2021-04-19 16:57:19 +00:00
text : {
type : 'plain_text' ,
text : 'Details' ,
emoji : true
} ,
value : 'value-0'
2020-02-11 14:01:35 +00:00
} ,
{
2021-04-19 16:57:19 +00:00
text : {
2020-02-11 14:01:35 +00:00
type : 'plain_text' ,
2021-04-19 16:57:19 +00:00
text : 'Remove' ,
2020-02-11 14:01:35 +00:00
emoji : true
} ,
2021-04-19 16:57:19 +00:00
value : 'value-1'
}
]
}
} ,
{
type : 'section' ,
text : {
type : 'mrkdwn' ,
text : 'Send an email to John (15min)'
} ,
accessory : {
blockId : 'overflow-3' ,
type : 'overflow' ,
options : [
{
text : {
2020-02-11 14:01:35 +00:00
type : 'plain_text' ,
2021-04-19 16:57:19 +00:00
text : 'Details' ,
2020-02-11 14:01:35 +00:00
emoji : true
} ,
2021-04-19 16:57:19 +00:00
value : 'value-0'
} ,
{
text : {
type : 'plain_text' ,
text : 'Remove' ,
emoji : true
2020-02-11 14:01:35 +00:00
} ,
2021-04-19 16:57:19 +00:00
value : 'value-1'
}
]
}
}
] ) ;
stories . add ( 'Modal - Contexts and Dividers' , ( ) => < ModalContextsDividers / > ) ;
2020-02-11 14:01:35 +00:00
2021-04-19 16:57:19 +00:00
const ModalInputWithError = ( ) => (
< KitContext . Provider value = { { ... defaultContext , errors : { 'input-test' : 'error test' } } } >
< UiKitComponent
render = { UiKitModal }
blocks = { [ {
type : 'input' ,
element : {
type : 'plain_text_input' ,
actionId : 'input-test'
} ,
label : {
type : 'plain_text' ,
text : 'Label' ,
emoji : true
}
} ] }
/ >
< / K i t C o n t e x t . P r o v i d e r >
) ;
stories . add ( 'Modal - Input with error' , ( ) => < ModalInputWithError / > ) ;
2020-02-11 14:01:35 +00:00
2021-04-19 16:57:19 +00:00
const ModalMultilneWithError = ( ) => (
< KitContext . Provider value = { { ... defaultContext , errors : { 'input-test' : 'error test' } } } >
< UiKitComponent
render = { UiKitModal }
blocks = { [ {
type : 'input' ,
element : {
type : 'plain_text_input' ,
multiline : true ,
actionId : 'input-test'
} ,
label : {
type : 'plain_text' ,
text : 'Label' ,
emoji : true
}
} ] }
/ >
< / K i t C o n t e x t . P r o v i d e r >
) ;
stories . add ( 'Modal - Multilne with error' , ( ) => < ModalMultilneWithError / > ) ;
2020-02-11 14:01:35 +00:00
2021-04-19 16:57:19 +00:00
const ModalDatePickerWithError = ( ) => (
< KitContext . Provider value = { { ... defaultContext , errors : { 'input-test' : 'error test' } } } >
< UiKitComponent
render = { UiKitModal }
blocks = { [ {
type : 'input' ,
element : {
type : 'datepicker' ,
initial _date : '1990-04-28' ,
actionId : 'input-test' ,
placeholder : {
type : 'plain_text' ,
text : 'Select a date' ,
emoji : true
}
} ,
label : {
type : 'plain_text' ,
text : 'Label' ,
emoji : true
}
} ] }
/ >
< / K i t C o n t e x t . P r o v i d e r >
2020-02-11 14:01:35 +00:00
) ;
2021-04-19 16:57:19 +00:00
stories . add ( 'Modal - DatePicker with error' , ( ) => < ModalDatePickerWithError / > ) ;