summaryrefslogtreecommitdiff
path: root/app/components/checkbox/checkbox.story.tsx
blob: 9d1429a6361d1681eeef92fcf0eca93f3888f16f (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* eslint-disable react-native/no-inline-styles */
/* eslint-disable react-native/no-color-literals */

import * as React from 'react'
import { View, ViewStyle } from 'react-native'
import { storiesOf } from '@storybook/react-native'
import { StoryScreen, Story, UseCase } from '../../../storybook/views'
import { Checkbox } from './checkbox'
import { Toggle } from 'react-powerplug'

declare let module

const arrayStyle: ViewStyle[] = [
  { paddingVertical: 40 },
  { alignSelf: 'flex-end' },
]
const arrayOutlineStyle: ViewStyle[] = [
  { borderColor: '#b443c9' },
  { borderWidth: 25 },
]
const arrayFillStyle: ViewStyle[] = [{ backgroundColor: '#55e0ff' }]

storiesOf('Checkbox', module)
  .addDecorator((fn) => <StoryScreen>{fn()}</StoryScreen>)
  .add('Behaviour', () => (
    <Story>
      <UseCase
        text="The Checkbox"
        usage="Use the checkbox to represent on/off states."
      >
        <Toggle initial={false}>
          {({ on, toggle }) => (
            <Checkbox value={on} onToggle={toggle} text="Toggle me" />
          )}
        </Toggle>
      </UseCase>
      <UseCase text="value = true" usage="This is permanently on.">
        <Checkbox value={true} text="Always on" />
      </UseCase>
      <UseCase text="value = false" usage="This is permanantly off.">
        <Checkbox value={false} text="Always off" />
      </UseCase>
    </Story>
  ))
  .add('Styling', () => (
    <Story>
      <UseCase text="multiline = true" usage="For really really long text">
        <Toggle initial={false}>
          {({ on, toggle }) => (
            <View>
              <Checkbox
                text="We’re an App Design & Development Team. Experts in mobile & web technologies. We create beautiful, functional mobile apps and websites."
                value={on}
                multiline
                onToggle={toggle}
              />
            </View>
          )}
        </Toggle>
      </UseCase>
      <UseCase text=".style" usage="Override the container style">
        <Toggle initial={false}>
          {({ on, toggle }) => (
            <View>
              <Checkbox
                text="Hello there!"
                value={on}
                style={{
                  backgroundColor: 'purple',
                  marginLeft: 40,
                  paddingVertical: 30,
                  paddingLeft: 60,
                }}
                onToggle={toggle}
              />
            </View>
          )}
        </Toggle>
      </UseCase>
      <UseCase text=".outlineStyle" usage="Override the outline style">
        <Toggle initial={false}>
          {({ on, toggle }) => (
            <View>
              <Checkbox
                text="Outline is the box frame"
                value={on}
                outlineStyle={{
                  borderColor: 'green',
                  borderRadius: 10,
                  borderWidth: 4,
                  width: 60,
                  height: 20,
                }}
                onToggle={toggle}
              />
            </View>
          )}
        </Toggle>
      </UseCase>
      <UseCase text=".fillStyle" usage="Override the fill style">
        <Toggle initial={false}>
          {({ on, toggle }) => (
            <View>
              <Checkbox
                text="Fill er up"
                value={on}
                fillStyle={{ backgroundColor: 'red', borderRadius: 8 }}
                onToggle={toggle}
              />
            </View>
          )}
        </Toggle>
      </UseCase>

      <UseCase text="Array style" usage="Use array styles">
        <Toggle initial={false}>
          {({ on, toggle }) => (
            <View>
              <Checkbox
                text="Check it twice"
                value={on}
                onToggle={toggle}
                style={arrayStyle}
                outlineStyle={arrayOutlineStyle}
                fillStyle={arrayFillStyle}
              />
            </View>
          )}
        </Toggle>
      </UseCase>
    </Story>
  ))