@mycause/ui 0.0.0-ce837d6b → 0.0.0-cf96d552
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +225 -0
- package/README.md +9 -0
- package/dist/components/button-select/button-select.d.ts +12 -0
- package/dist/components/button-select/button-select.stories.d.ts +13 -0
- package/dist/components/button-select/index.d.ts +1 -0
- package/dist/components/campaign-card/campaign-card.d.ts +9 -0
- package/dist/components/campaign-card/campaign-card.stories.d.ts +14 -0
- package/dist/components/campaign-card/index.d.ts +1 -0
- package/dist/components/campaign-of-month/campaign-of-month.d.ts +12 -0
- package/dist/components/campaign-of-month/campaign-of-month.stories.d.ts +14 -0
- package/dist/components/campaign-of-month/index.d.ts +1 -0
- package/dist/components/campain-card/campain-card.d.ts +9 -0
- package/dist/components/campain-card/campain-card.stories.d.ts +14 -0
- package/dist/components/charity-card/charity-card.d.ts +7 -0
- package/dist/components/charity-card/charity-card.stories.d.ts +14 -0
- package/dist/components/charity-card/index.d.ts +1 -0
- package/dist/components/combo-field/combo-field.d.ts +4 -1
- package/dist/components/comment-section/comment-section.d.ts +23 -0
- package/dist/components/comment-section/comment-section.stories.d.ts +13 -0
- package/dist/components/comment-section/index.d.ts +1 -0
- package/dist/components/comment-section/sub-comments.d.ts +6 -0
- package/dist/components/cropper/cropper.d.ts +5 -4
- package/dist/components/cropper/cropper.stories.d.ts +1 -2
- package/dist/components/date-picker/single-date-picker.d.ts +3 -2
- package/dist/components/donate-card/donate-card.d.ts +8 -0
- package/dist/components/donate-card/donate-card.stories.d.ts +14 -0
- package/dist/components/donate-card/index.d.ts +1 -0
- package/dist/components/donation-form/donation-details.d.ts +12 -0
- package/dist/components/donation-form/donation-form.d.ts +64 -0
- package/dist/components/{phone-number-field/phone-number-field.stories.d.ts → donation-form/donation-form.stories.d.ts} +1 -1
- package/dist/components/donation-form/donation-payment.d.ts +13 -0
- package/dist/components/donation-form/donation-select.d.ts +13 -0
- package/dist/components/donation-form/index.d.ts +1 -0
- package/dist/components/elevation/elevation.d.ts +2 -1
- package/dist/components/featured-campaign-card /featured-campaign-card.d.ts +14 -0
- package/dist/components/featured-campaign-card /featured-campaign-card.stories.d.ts +14 -0
- package/dist/components/featured-campaign-card /index.d.ts +1 -0
- package/dist/components/featured-campain-card /featured-campain-card .stories.d.ts +14 -0
- package/dist/components/featured-campain-card /featured-campain-card.d.ts +14 -0
- package/dist/components/fundraising-section/fundraising-section.d.ts +9 -0
- package/dist/components/fundraising-section/fundraising-section.stories.d.ts +14 -0
- package/dist/components/fundraising-section/index.d.ts +1 -0
- package/dist/components/hero-banner/hero-banner.d.ts +9 -0
- package/dist/components/hero-banner/hero-banner.stories.d.ts +14 -0
- package/dist/components/hero-banner/index.d.ts +1 -0
- package/dist/components/horizontalbar/horizontalbar.d.ts +11 -0
- package/dist/components/horizontalbar/horizontalbar.stories.d.ts +26 -0
- package/dist/components/horizontalbar/index.d.ts +1 -0
- package/dist/components/icon/heart-toggle.d.ts +11 -0
- package/dist/components/icon/heart-toggle.stories.d.ts +13 -0
- package/dist/components/icon/index.d.ts +1 -1
- package/dist/components/index.d.ts +6 -1
- package/dist/components/list/list.d.ts +29 -14
- package/dist/components/list/list.stories.d.ts +8 -2
- package/dist/components/login/index.d.ts +1 -0
- package/dist/components/login/login.d.ts +15 -0
- package/dist/components/login/login.stories.d.ts +19 -0
- package/dist/components/modal/modal.d.ts +4 -3
- package/dist/components/modal/modal.stories.d.ts +6 -0
- package/dist/components/nav/index.d.ts +1 -0
- package/dist/components/nav/nav-actions.d.ts +5 -0
- package/dist/components/nav/nav-bar.d.ts +7 -0
- package/dist/components/nav/nav-call-to-action.d.ts +5 -0
- package/dist/components/nav/nav-expanded.d.ts +11 -0
- package/dist/components/nav/nav-list.d.ts +27 -0
- package/dist/components/nav/nav-menu-control.d.ts +7 -0
- package/dist/components/nav/nav-menu.d.ts +12 -0
- package/dist/components/nav/nav-search-control.d.ts +7 -0
- package/dist/components/nav/nav-search.d.ts +9 -0
- package/dist/components/nav/nav-sign-in-control.d.ts +11 -0
- package/dist/components/nav/nav-user-menu-items.d.ts +20 -0
- package/dist/components/nav/nav-user-menu.d.ts +18 -0
- package/dist/components/nav/nav.d.ts +55 -0
- package/dist/components/nav/nav.stories.d.ts +11 -0
- package/dist/components/navigation/navigation-list.d.ts +3 -1
- package/dist/components/navigation/navigation-menu.d.ts +2 -1
- package/dist/components/navigation/navigation-sign-in-control.d.ts +6 -3
- package/dist/components/navigation/navigation.d.ts +12 -1
- package/dist/components/navigation/navigation.stories.d.ts +3 -21
- package/dist/components/phone-number-input/index.d.ts +2 -0
- package/dist/components/{phone-number-field/phone-number-field.d.ts → phone-number-input/phone-number-input.d.ts} +5 -3
- package/dist/components/phone-number-input/phone-number-input.stories.d.ts +13 -0
- package/dist/components/{phone-number-field → phone-number-input}/util.d.ts +0 -0
- package/dist/components/popup/index.d.ts +1 -0
- package/dist/components/popup/popup.d.ts +8 -0
- package/dist/components/popup/popup.stories.d.ts +14 -0
- package/dist/components/progressbar/index.d.ts +1 -0
- package/dist/components/progressbar/progressbar.d.ts +8 -0
- package/dist/components/progressbar/progressbar.stories.d.ts +14 -0
- package/dist/components/select/select.d.ts +2 -1
- package/dist/components/spinner/index.d.ts +1 -0
- package/dist/components/spinner/spinner.d.ts +8 -0
- package/dist/components/spinner/spinner.stories.d.ts +13 -0
- package/dist/components/start-campaign-card/index.d.ts +1 -0
- package/dist/components/start-campaign-card/start-campaign-card.d.ts +8 -0
- package/dist/components/start-campaign-card/start-campaign-card.stories.d.ts +14 -0
- package/dist/components/start-campain-card/start-campain-card.d.ts +8 -0
- package/dist/components/start-campain-card/start-campain-card.stories.d.ts +14 -0
- package/dist/components/statistics/statistics.d.ts +2 -1
- package/dist/components/tabs/tabs.d.ts +3 -1
- package/dist/components/text/text.d.ts +1 -1
- package/dist/components/text-field/text-field.d.ts +1 -0
- package/dist/index.esm.js +5298 -4190
- package/dist/index.js +4872 -3759
- package/dist/utils/parse-numbers.d.ts +2 -0
- package/package.json +4 -1
- package/styles/index.css +1 -0
- package/dist/components/anchor/anchor.jsx +0 -35
- package/dist/components/anchor/anchor.stories.jsx +0 -12
- package/dist/components/anchor/bold-anchor.jsx +0 -33
- package/dist/components/anchor/bold-anchor.stories.jsx +0 -11
- package/dist/components/anchor/index.js +0 -2
- package/dist/components/avatar/avatar.jsx +0 -14
- package/dist/components/avatar/avatar.stories.jsx +0 -17
- package/dist/components/avatar/image-avatar.jsx +0 -29
- package/dist/components/avatar/index.js +0 -1
- package/dist/components/avatar/text-avatar.jsx +0 -47
- package/dist/components/button/button.jsx +0 -85
- package/dist/components/button/button.stories.jsx +0 -118
- package/dist/components/button/index.js +0 -1
- package/dist/components/checkbox/checkbox.jsx +0 -39
- package/dist/components/checkbox/checkbox.stories.jsx +0 -42
- package/dist/components/checkbox/index.js +0 -1
- package/dist/components/chips/chip.jsx +0 -30
- package/dist/components/chips/chips.jsx +0 -16
- package/dist/components/chips/chips.stories.jsx +0 -35
- package/dist/components/chips/index.js +0 -3
- package/dist/components/chips/input-chips.jsx +0 -16
- package/dist/components/chips/input-chips.stories.jsx +0 -39
- package/dist/components/combo-field/combo-field-expander.jsx +0 -23
- package/dist/components/combo-field/combo-field.jsx +0 -93
- package/dist/components/combo-field/combo-field.stories.jsx +0 -62
- package/dist/components/combo-field/index.js +0 -2
- package/dist/components/cropper/cropper.jsx +0 -15
- package/dist/components/cropper/cropper.stories.jsx +0 -18
- package/dist/components/cropper/index.js +0 -1
- package/dist/components/date-picker/date-picker.jsx +0 -74
- package/dist/components/date-picker/date-picker.stories.jsx +0 -46
- package/dist/components/date-picker/index.js +0 -2
- package/dist/components/date-picker/single-date-picker.jsx +0 -81
- package/dist/components/elevation/elevation.jsx +0 -19
- package/dist/components/elevation/elevation.stories.jsx +0 -31
- package/dist/components/elevation/index.js +0 -1
- package/dist/components/field-helpers/field-helper-text.jsx +0 -42
- package/dist/components/field-helpers/field-label.jsx +0 -29
- package/dist/components/field-helpers/index.js +0 -2
- package/dist/components/icon/btn_google_light_normal_ios.svg.jsx +0 -21
- package/dist/components/icon/facebook_6.svg.jsx +0 -13
- package/dist/components/icon/icon-button-group.jsx +0 -51
- package/dist/components/icon/icon-button-group.stories.jsx +0 -26
- package/dist/components/icon/icon-button.jsx +0 -48
- package/dist/components/icon/icon-button.stories.jsx +0 -33
- package/dist/components/icon/icon.jsx +0 -49
- package/dist/components/icon/icon.stories.jsx +0 -78
- package/dist/components/icon/index.js +0 -4
- package/dist/components/icon/material-icon.jsx +0 -18
- package/dist/components/icon/toggle-button.jsx +0 -29
- package/dist/components/icon/toggle-button.stories.jsx +0 -16
- package/dist/components/index.js +0 -27
- package/dist/components/layout/box.jsx +0 -58
- package/dist/components/layout/flex.jsx +0 -55
- package/dist/components/layout/flex.stories.jsx +0 -44
- package/dist/components/layout/grid.jsx +0 -19
- package/dist/components/layout/grid.stories.jsx +0 -29
- package/dist/components/layout/index.js +0 -4
- package/dist/components/layout/stack.jsx +0 -33
- package/dist/components/layout/stack.stories.jsx +0 -40
- package/dist/components/list/index.js +0 -1
- package/dist/components/list/list.jsx +0 -52
- package/dist/components/list/list.stories.jsx +0 -135
- package/dist/components/logo/index.js +0 -1
- package/dist/components/logo/logo-type.jsx +0 -65
- package/dist/components/menu/index.js +0 -8
- package/dist/components/menu/menu-list-divider.jsx +0 -2
- package/dist/components/menu/menu-list-item-graphic.jsx +0 -2
- package/dist/components/menu/menu-list-item-meta.jsx +0 -2
- package/dist/components/menu/menu-list-item-text.jsx +0 -2
- package/dist/components/menu/menu-list-item.jsx +0 -11
- package/dist/components/menu/menu-list.jsx +0 -18
- package/dist/components/menu/menu-surface.jsx +0 -4
- package/dist/components/menu/menu.jsx +0 -2
- package/dist/components/menu/menu.stories.jsx +0 -42
- package/dist/components/modal/index.js +0 -1
- package/dist/components/modal/modal.jsx +0 -49
- package/dist/components/modal/modal.stories.jsx +0 -47
- package/dist/components/navigation/index.js +0 -1
- package/dist/components/navigation/navigation-actions.jsx +0 -8
- package/dist/components/navigation/navigation-bar.jsx +0 -42
- package/dist/components/navigation/navigation-call-to-action.jsx +0 -6
- package/dist/components/navigation/navigation-expanded.jsx +0 -165
- package/dist/components/navigation/navigation-list.jsx +0 -126
- package/dist/components/navigation/navigation-menu-control.jsx +0 -25
- package/dist/components/navigation/navigation-menu.jsx +0 -103
- package/dist/components/navigation/navigation-search-control.jsx +0 -8
- package/dist/components/navigation/navigation-search.jsx +0 -63
- package/dist/components/navigation/navigation-sign-in-control.jsx +0 -14
- package/dist/components/navigation/navigation-user-menu-items.jsx +0 -36
- package/dist/components/navigation/navigation-user-menu.jsx +0 -121
- package/dist/components/navigation/navigation.jsx +0 -137
- package/dist/components/navigation/navigation.stories.jsx +0 -260
- package/dist/components/phone-number-field/index.d.ts +0 -2
- package/dist/components/phone-number-field/index.js +0 -2
- package/dist/components/phone-number-field/phone-number-field.jsx +0 -50
- package/dist/components/phone-number-field/phone-number-field.stories.jsx +0 -23
- package/dist/components/phone-number-field/util.js +0 -19
- package/dist/components/radio/index.js +0 -2
- package/dist/components/radio/radio-group.jsx +0 -9
- package/dist/components/radio/radio-group.stories.jsx +0 -21
- package/dist/components/radio/radio.jsx +0 -31
- package/dist/components/radio/radio.stories.jsx +0 -44
- package/dist/components/select/index.js +0 -2
- package/dist/components/select/select-helper-text.jsx +0 -6
- package/dist/components/select/select.jsx +0 -152
- package/dist/components/select/select.stories.jsx +0 -40
- package/dist/components/statistics/index.js +0 -1
- package/dist/components/statistics/statistics.jsx +0 -61
- package/dist/components/statistics/statistics.stories.jsx +0 -34
- package/dist/components/switch/index.js +0 -1
- package/dist/components/switch/switch.jsx +0 -32
- package/dist/components/switch/switch.stories.jsx +0 -41
- package/dist/components/tabs/index.js +0 -1
- package/dist/components/tabs/tab-bar.jsx +0 -35
- package/dist/components/tabs/tab-text-label.jsx +0 -5
- package/dist/components/tabs/tab.jsx +0 -50
- package/dist/components/tabs/tabs.jsx +0 -65
- package/dist/components/tabs/tabs.stories.jsx +0 -27
- package/dist/components/text/index.js +0 -1
- package/dist/components/text/text.jsx +0 -138
- package/dist/components/text/text.stories.jsx +0 -262
- package/dist/components/text-field/index.js +0 -2
- package/dist/components/text-field/text-field-helper-text.jsx +0 -8
- package/dist/components/text-field/text-field.jsx +0 -124
- package/dist/components/text-field/text-field.stories.jsx +0 -32
- package/dist/components/uploader/index.js +0 -1
- package/dist/components/uploader/uploader.jsx +0 -96
- package/dist/input.d.ts +0 -1
- package/dist/input.js +0 -4
- package/dist/input.jsx +0 -4
- package/dist/theme/colors.js +0 -9
- package/dist/theme/index.js +0 -2
- package/dist/theme/mycause-theme.js +0 -33
- package/dist/theme/theme.jsx +0 -36
- package/dist/utils/browser.js +0 -19
- package/dist/utils/center-decorator.jsx +0 -15
- package/dist/utils/component-matrix.jsx +0 -39
- package/dist/utils/flags.js +0 -18
- package/dist/utils/grid-decorator.jsx +0 -27
- package/dist/utils/tap-event.js +0 -11
- package/dist/utils/wrap.js +0 -8
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import useMedia from "use-media";
|
|
3
|
-
import { WHITE } from "../../theme/colors";
|
|
4
|
-
import Tabs from "../tabs/tabs";
|
|
5
|
-
import NavigationMenu from "./navigation-menu";
|
|
6
|
-
import NavigationBar from "./navigation-bar";
|
|
7
|
-
import NavigationExpanded from "./navigation-expanded";
|
|
8
|
-
import { Statistics } from "../statistics";
|
|
9
|
-
import NavigationActions from "./navigation-actions";
|
|
10
|
-
import NavigationSearch from "./navigation-search";
|
|
11
|
-
import NavigationSearchControl from "./navigation-search-control";
|
|
12
|
-
import NavigationSignInControl from "./navigation-sign-in-control";
|
|
13
|
-
import NavigationCallToAction from "./navigation-call-to-action";
|
|
14
|
-
import NavigationMenuControl from "./navigation-menu-control";
|
|
15
|
-
import NavigationUserMenu from "./navigation-user-menu";
|
|
16
|
-
function Navigation({ logo, menus, links, stats, cta, user, userMenu, search, login, isSticky, isCompactHeight, }) {
|
|
17
|
-
const [isSearchOpen, setSearchOpen] = useState(false);
|
|
18
|
-
const [isUserMenuOpen, setUserMenuOpen] = useState();
|
|
19
|
-
const [query, setQuery] = useState("");
|
|
20
|
-
const [active, setActive] = useState([null, null]);
|
|
21
|
-
const isCompact = useMedia("screen and (max-width: 720px)");
|
|
22
|
-
const isMedium = useMedia("screen and (max-width: 960px)");
|
|
23
|
-
const menu = active[0] && menus ? menus.find(menu => menu.id === active[0]) : null;
|
|
24
|
-
const submenu = active[1]
|
|
25
|
-
? menu.items.find(item => "id" in item && item.id === active[1]) &&
|
|
26
|
-
menu.items.find(item => "id" in item && item.id === active[1]).submenu
|
|
27
|
-
: null;
|
|
28
|
-
const handleChangeMenuOpen = (isOpen) => {
|
|
29
|
-
if (isOpen) {
|
|
30
|
-
setActive(replace(active, 0, menus[0].id));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
setActive([null, null]);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
return (<nav className="navigation">
|
|
37
|
-
<NavigationBar isCompactHeight={isCompactHeight}>
|
|
38
|
-
{!(isCompact && isSearchOpen) ? (<div className="logo-wrap">{logo}</div>) : null}
|
|
39
|
-
{isSearchOpen && search ? (<>
|
|
40
|
-
<NavigationSearch value={query} onChange={setQuery} onSubmit={() => search.onSearch(query)} onCancel={() => setSearchOpen(false)}/>
|
|
41
|
-
</>) : (<>
|
|
42
|
-
<div className="desktop-tabs">
|
|
43
|
-
<Tabs tabs={menus
|
|
44
|
-
? menus.map(item => ({
|
|
45
|
-
key: item.id,
|
|
46
|
-
label: item.label,
|
|
47
|
-
analyticsId: item.analyticsId,
|
|
48
|
-
}))
|
|
49
|
-
: []} active={active[0]} isCompactHeight={isCompactHeight} onActiveUpdate={id => setActive(replace(active, 0, id))} isMinWidth isMinWidthIndicator large/>
|
|
50
|
-
</div>
|
|
51
|
-
<NavigationActions>
|
|
52
|
-
{search && (<NavigationSearchControl onChangeSearchOpen={setSearchOpen} analyticsId={search.analyticsId}/>)}
|
|
53
|
-
{user ? (<NavigationUserMenu user={user} items={userMenu} isOpen={isUserMenuOpen} onChangeOpen={setUserMenuOpen} isCompact={isCompact}/>) : (login && (<NavigationSignInControl compact={isCompact} onRequestSignIn={login.onLogin} analyticsId={login.analyticsId}/>))}
|
|
54
|
-
{!isMedium && cta ? <NavigationCallToAction {...cta}/> : null}
|
|
55
|
-
{isMedium && menus ? (<NavigationMenuControl isMenuOpen={!!menu} onChangeMenuOpen={handleChangeMenuOpen}/>) : null}
|
|
56
|
-
</NavigationActions>
|
|
57
|
-
</>)}
|
|
58
|
-
</NavigationBar>
|
|
59
|
-
{menu ? (<NavigationExpanded links={links} onRequestClose={() => setActive([null, null])} className="navigation-float" banner={stats ? (<Statistics stats={stats} title="We support your cause"/>) : null}>
|
|
60
|
-
<div className="mobile-tabs">
|
|
61
|
-
<Tabs tabs={menus
|
|
62
|
-
? menus.map(item => ({ key: item.id, label: item.label }))
|
|
63
|
-
: []} active={active[0]} onActiveUpdate={id => setActive(replace(active, 0, id))}/>
|
|
64
|
-
</div>
|
|
65
|
-
<NavigationMenu key={menu.id} links={menu.items.map(item => ({
|
|
66
|
-
...item,
|
|
67
|
-
more: !!item.submenu,
|
|
68
|
-
}))} sublinks={submenu || null} action={menu.action || null} active={active[1]} onClickItem={id => setActive(() => {
|
|
69
|
-
if (active[1])
|
|
70
|
-
return [active[0], null];
|
|
71
|
-
else
|
|
72
|
-
return replace(active, 1, id);
|
|
73
|
-
})}/>
|
|
74
|
-
</NavigationExpanded>) : null}
|
|
75
|
-
<style jsx>{`
|
|
76
|
-
.navigation {
|
|
77
|
-
background-color: ${WHITE};
|
|
78
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12),
|
|
79
|
-
0 1px 4px rgba(0, 0, 0, 0.24);
|
|
80
|
-
top: 0;
|
|
81
|
-
z-index: 10;
|
|
82
|
-
position: ${isSticky ? "fixed" : "relative"};
|
|
83
|
-
width: 100%;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.logo-wrap {
|
|
87
|
-
display: flex;
|
|
88
|
-
align-items: center;
|
|
89
|
-
justify-content: center;
|
|
90
|
-
margin-right: 1rem;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.desktop-tabs {
|
|
94
|
-
margin-left: 1rem;
|
|
95
|
-
display: none;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.mobile-tabs {
|
|
99
|
-
margin: 0 -1rem;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.navigation :global(.navigation-float) {
|
|
103
|
-
position: absolute;
|
|
104
|
-
top: 100%;
|
|
105
|
-
left: 0;
|
|
106
|
-
right: 0;
|
|
107
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12),
|
|
108
|
-
0 1px 4px rgba(0, 0, 0, 0.24);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
@media (min-width: 960px) {
|
|
112
|
-
.navigation {
|
|
113
|
-
position: relative;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.mobile-tabs {
|
|
117
|
-
display: none;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.desktop-tabs {
|
|
121
|
-
display: block;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
`}</style>
|
|
125
|
-
</nav>);
|
|
126
|
-
}
|
|
127
|
-
function replace(arr, x, val) {
|
|
128
|
-
return arr.map((item, i) => {
|
|
129
|
-
if (i === x)
|
|
130
|
-
return val;
|
|
131
|
-
if (x > 0)
|
|
132
|
-
return item;
|
|
133
|
-
else
|
|
134
|
-
return null;
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
export default Navigation;
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { action } from "@storybook/addon-actions";
|
|
3
|
-
import useMedia from "use-media";
|
|
4
|
-
import { LogoType } from "../logo";
|
|
5
|
-
import Navigation from "./navigation";
|
|
6
|
-
import NavigationList from "./navigation-list";
|
|
7
|
-
import NavigationMenu from "./navigation-menu";
|
|
8
|
-
import NavigationExpanded from "./navigation-expanded";
|
|
9
|
-
import NavigationSearch from "./navigation-search";
|
|
10
|
-
import avatar from "../avatar/ipet-photo-CfDAo3C3bvQ-unsplash.jpg";
|
|
11
|
-
import circle from "../statistics/circle.svg";
|
|
12
|
-
function Logo() {
|
|
13
|
-
return (<LogoType size={useMedia("screen and (min-width: 720px") ? "large" : undefined}/>);
|
|
14
|
-
}
|
|
15
|
-
function BackgroundContainer({ children }) {
|
|
16
|
-
return (<div className="container">
|
|
17
|
-
<div className="content">{children}</div>
|
|
18
|
-
<style jsx>{`
|
|
19
|
-
.container {
|
|
20
|
-
min-height: 100vh;
|
|
21
|
-
display: flex;
|
|
22
|
-
align-items: center;
|
|
23
|
-
justify-content: center;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.content {
|
|
27
|
-
width: 100%;
|
|
28
|
-
max-width: 1024px;
|
|
29
|
-
padding: 2rem 1rem;
|
|
30
|
-
background-color: rgba(0, 0, 0, 0.01);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@media (min-width: 720px) {
|
|
34
|
-
.content {
|
|
35
|
-
padding: 4rem;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
`}</style>
|
|
39
|
-
</div>);
|
|
40
|
-
}
|
|
41
|
-
export default {
|
|
42
|
-
title: "Navigation",
|
|
43
|
-
};
|
|
44
|
-
function NavigationSearchDemo() {
|
|
45
|
-
const [value, setValue] = useState("");
|
|
46
|
-
return (<NavigationSearch value={value} onChange={setValue} onSubmit={action("search")} onCancel={action("cancel")}/>);
|
|
47
|
-
}
|
|
48
|
-
function NavigationDemo() {
|
|
49
|
-
const [isSignedIn, setSignedIn] = useState(false);
|
|
50
|
-
return (<Navigation logo={<Logo />} isSticky={true} menus={[
|
|
51
|
-
{
|
|
52
|
-
label: "Fundraise",
|
|
53
|
-
id: "fundraise",
|
|
54
|
-
analyticsId: "fundraise",
|
|
55
|
-
items: [
|
|
56
|
-
{ label: "For a person", id: "person", analyticsId: "person" },
|
|
57
|
-
{ label: "For a charity", id: "charity" },
|
|
58
|
-
{ label: "Find a charity", id: "find_charity" },
|
|
59
|
-
{
|
|
60
|
-
label: "Fundraising ideas",
|
|
61
|
-
id: "fundraising_ideas",
|
|
62
|
-
submenu: [
|
|
63
|
-
{ label: "Schools", id: "schools" },
|
|
64
|
-
{ label: "Cancer", id: "cancer" },
|
|
65
|
-
{ label: "Pets & animals", id: "pets_animals" },
|
|
66
|
-
{ label: "Help a friend", id: "help_friend" },
|
|
67
|
-
{ label: "Marathon runs", id: "marathon" },
|
|
68
|
-
{ label: "See all fundraising ideas", id: "see all" },
|
|
69
|
-
],
|
|
70
|
-
},
|
|
71
|
-
{ label: "Team fundraising", id: "team_fundraising" },
|
|
72
|
-
{ label: "How it works", id: "how_it_works" },
|
|
73
|
-
],
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
label: "Donate",
|
|
77
|
-
id: "donate",
|
|
78
|
-
analyticsId: "donate",
|
|
79
|
-
items: [
|
|
80
|
-
{ label: "Donate to a charity", id: "donate" },
|
|
81
|
-
{ label: "Send a gift card/voucher", id: "gift_card" },
|
|
82
|
-
{ label: "Pledge your birthday", id: "birthday" },
|
|
83
|
-
{ label: "Start a giving portfolio", id: "giving_portfolio" },
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
label: "Organisation",
|
|
88
|
-
id: "organisation",
|
|
89
|
-
analyticsId: "organisation",
|
|
90
|
-
items: [
|
|
91
|
-
{
|
|
92
|
-
label: "For your organisation",
|
|
93
|
-
id: "organisation",
|
|
94
|
-
submenu: [
|
|
95
|
-
{ label: "Schools", id: "schools" },
|
|
96
|
-
{ label: "Clubs", id: "clubs" },
|
|
97
|
-
{ label: "Charity", id: "charity" },
|
|
98
|
-
{ label: "Event manager", id: "event_manager" },
|
|
99
|
-
{ label: "Corporate", id: "corporate" },
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
{ label: "Fundraising events", id: "events" },
|
|
103
|
-
{ label: "Donating services", id: "donating_services" },
|
|
104
|
-
{ label: "Giving days", id: "giving_days" },
|
|
105
|
-
{ label: "Crowdfunding & appeals", id: "crowdfunding" },
|
|
106
|
-
{ label: "Peer 2 peer fundraising", id: "peer_fundraising" },
|
|
107
|
-
],
|
|
108
|
-
action: {
|
|
109
|
-
label: "Become a partner (free)",
|
|
110
|
-
id: "become_a_partner",
|
|
111
|
-
analyticsId: "becomeAPartner",
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
]} links={[
|
|
115
|
-
{ label: "About", id: "about" },
|
|
116
|
-
{ label: "Help", id: "help" },
|
|
117
|
-
{ label: "Blog & Press", id: "blog-press" },
|
|
118
|
-
]} stats={[
|
|
119
|
-
{
|
|
120
|
-
label: "Members",
|
|
121
|
-
id: "nav-expand-members",
|
|
122
|
-
value: "302, 657",
|
|
123
|
-
logo: circle,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
label: "Causes",
|
|
127
|
-
id: "nav-expand-causes",
|
|
128
|
-
value: "68, 553",
|
|
129
|
-
logo: circle,
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
label: "Raised",
|
|
133
|
-
id: "nav-expand-raised",
|
|
134
|
-
value: "$100 Million +",
|
|
135
|
-
logo: circle,
|
|
136
|
-
},
|
|
137
|
-
]} cta={{
|
|
138
|
-
color: "primary",
|
|
139
|
-
onClick: action("onClick"),
|
|
140
|
-
children: "Start fundraising",
|
|
141
|
-
analyticsId: "startFundraising",
|
|
142
|
-
}} user={isSignedIn
|
|
143
|
-
? {
|
|
144
|
-
name: "Adorable Puppy",
|
|
145
|
-
avatar: {
|
|
146
|
-
src: avatar,
|
|
147
|
-
},
|
|
148
|
-
}
|
|
149
|
-
: null} search={{ onSearch: action("search") }} login={{ onLogin: () => setSignedIn(true) }} userMenu={[
|
|
150
|
-
{
|
|
151
|
-
icon: { icon: "perm_identity" },
|
|
152
|
-
label: "My dashboard",
|
|
153
|
-
onClick: action("dashboard"),
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
icon: { icon: "favorite_border" },
|
|
157
|
-
label: "Activity",
|
|
158
|
-
onClick: action("activity"),
|
|
159
|
-
submenu: [
|
|
160
|
-
{
|
|
161
|
-
label: "Fundraising pages",
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
label: "Favourite charities",
|
|
165
|
-
},
|
|
166
|
-
],
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
icon: { icon: "favorite_border" },
|
|
170
|
-
label: "My campaigns",
|
|
171
|
-
onClick: action("my campaigns"),
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
icon: { icon: "settings", iconSet: "material-icons-outlined" },
|
|
175
|
-
label: "Account settings",
|
|
176
|
-
onClick: action("settings"),
|
|
177
|
-
submenu: [
|
|
178
|
-
{
|
|
179
|
-
label: "Profile",
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
label: "Manage Connections",
|
|
183
|
-
},
|
|
184
|
-
],
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
icon: { icon: "exit_to_app" },
|
|
188
|
-
label: "Sign out",
|
|
189
|
-
onClick: () => setSignedIn(false),
|
|
190
|
-
},
|
|
191
|
-
]}/>);
|
|
192
|
-
}
|
|
193
|
-
export const full = () => <NavigationDemo />;
|
|
194
|
-
full.story = {
|
|
195
|
-
name: "full navigation",
|
|
196
|
-
};
|
|
197
|
-
export const list = () => (<BackgroundContainer>
|
|
198
|
-
<NavigationList items={[
|
|
199
|
-
{ label: "Schools", id: "schools" },
|
|
200
|
-
{ label: "Cancer", id: "cancer" },
|
|
201
|
-
{ label: "Pets & animals", id: "pets_animals" },
|
|
202
|
-
{ label: "Help a friend", id: "help_friend" },
|
|
203
|
-
{ label: "Marathon runs", id: "marathon" },
|
|
204
|
-
{ label: "See all fundraising ideas", id: "see all" },
|
|
205
|
-
].map(item => ({ ...item, onClick: () => action("click")(item.id) }))}/>
|
|
206
|
-
</BackgroundContainer>);
|
|
207
|
-
list.story = {
|
|
208
|
-
name: "navigation list",
|
|
209
|
-
};
|
|
210
|
-
export const listLarge = () => (<BackgroundContainer>
|
|
211
|
-
<NavigationList size="large" items={[
|
|
212
|
-
{ label: "Schools", id: "schools" },
|
|
213
|
-
{ label: "Cancer", id: "cancer" },
|
|
214
|
-
{ label: "Pets & animals", id: "pets_animals" },
|
|
215
|
-
{ label: "Help a friend", id: "help_friend" },
|
|
216
|
-
{ label: "Marathon runs", id: "marathon" },
|
|
217
|
-
{ label: "See all fundraising ideas", id: "see all" },
|
|
218
|
-
].map(item => ({ ...item, onClick: () => action("click")(item.id) }))}/>
|
|
219
|
-
</BackgroundContainer>);
|
|
220
|
-
listLarge.story = {
|
|
221
|
-
name: "navigation list (large)",
|
|
222
|
-
};
|
|
223
|
-
export const menu = () => (<BackgroundContainer>
|
|
224
|
-
<NavigationMenu links={[
|
|
225
|
-
{ label: "For a person", id: "person" },
|
|
226
|
-
{ label: "For a charity", id: "charity" },
|
|
227
|
-
{ label: "Find a charity", id: "find_charity" },
|
|
228
|
-
{ label: "Fundraising ideas", id: "fundraising_ideas", more: true },
|
|
229
|
-
{ label: "Team fundraising", id: "team_fundraising" },
|
|
230
|
-
{ label: "How it works", id: "how_it_works" },
|
|
231
|
-
].map(link => ({ ...link, onClick: () => action("click")(link.id) }))} sublinks={[
|
|
232
|
-
{ label: "Schools", id: "schools" },
|
|
233
|
-
{ label: "Cancer", id: "cancer" },
|
|
234
|
-
{ label: "Pets & animals", id: "pets_animals" },
|
|
235
|
-
{ label: "Help a friend", id: "help_friend" },
|
|
236
|
-
{ label: "Marathon runs", id: "marathon" },
|
|
237
|
-
{ label: "See all fundraising ideas", id: "see all" },
|
|
238
|
-
].map(link => ({ ...link, onClick: () => action("click")(link.id) }))} action={{
|
|
239
|
-
label: "Start fundraising",
|
|
240
|
-
id: "start_fundraising",
|
|
241
|
-
onClick: () => action("click")("start_fundraising"),
|
|
242
|
-
}} active="fundraising_ideas" onClickItem={action("click")}/>
|
|
243
|
-
</BackgroundContainer>);
|
|
244
|
-
menu.story = {
|
|
245
|
-
name: "navigation menu",
|
|
246
|
-
};
|
|
247
|
-
export const expanded = () => (<NavigationExpanded links={[
|
|
248
|
-
{ label: "About", id: "about" },
|
|
249
|
-
{ label: "Help", id: "help" },
|
|
250
|
-
{ label: "Blog & Press", id: "blog-press" },
|
|
251
|
-
].map(link => ({ ...link, onClick: () => action("click")(link.id) }))} onRequestClose={() => { }}/>);
|
|
252
|
-
expanded.story = {
|
|
253
|
-
name: "navigation expanded",
|
|
254
|
-
};
|
|
255
|
-
export const search = () => (<BackgroundContainer>
|
|
256
|
-
<NavigationSearchDemo />
|
|
257
|
-
</BackgroundContainer>);
|
|
258
|
-
search.story = {
|
|
259
|
-
name: "navigation search",
|
|
260
|
-
};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import countries from "i18n-iso-countries";
|
|
3
|
-
import en from "i18n-iso-countries/langs/en.json";
|
|
4
|
-
import { AsYouType } from "libphonenumber-js";
|
|
5
|
-
import { FieldLabel, FieldHelperText } from "../field-helpers";
|
|
6
|
-
import { ComboField, ComboFieldExpander } from "../combo-field";
|
|
7
|
-
import { Box } from "../layout";
|
|
8
|
-
import { Select } from "../select";
|
|
9
|
-
import { TextField } from "../text-field";
|
|
10
|
-
countries.registerLocale(en);
|
|
11
|
-
const COUNTRY_CODES = Object.keys(countries.getAlpha2Codes()).sort();
|
|
12
|
-
function PhoneNumberField({ onChange, values, names = {
|
|
13
|
-
number: "number",
|
|
14
|
-
countryCallingCode: "countryCallingCode",
|
|
15
|
-
country: "country",
|
|
16
|
-
}, error, onBlur, helperText, label, required, defaultCountry = "AU", }) {
|
|
17
|
-
const format = (text, c) => {
|
|
18
|
-
const typer = new AsYouType(c || defaultCountry);
|
|
19
|
-
const formatted = typer.input(text);
|
|
20
|
-
let result = typer.getNumber();
|
|
21
|
-
if (result && result.isValid()) {
|
|
22
|
-
// When the user has typed in a full valid number,
|
|
23
|
-
// emit the country calling code and set the country explicitly
|
|
24
|
-
onChange(result.country, names.country);
|
|
25
|
-
onChange(result.format("NATIONAL"), names.number);
|
|
26
|
-
onChange(result.countryCallingCode, names.countryCallingCode);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
onChange(formatted, names.number);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
const handleCountryChange = (e) => {
|
|
33
|
-
onChange(e.target.value || "", names.country);
|
|
34
|
-
format(values.number, e.target.value);
|
|
35
|
-
};
|
|
36
|
-
const handleTextChange = (e) => {
|
|
37
|
-
format(e.target.value, values.country);
|
|
38
|
-
};
|
|
39
|
-
return (<Box>
|
|
40
|
-
{label ? <FieldLabel required={required}>{label}</FieldLabel> : null}
|
|
41
|
-
<ComboField>
|
|
42
|
-
<Select options={COUNTRY_CODES} value={values.country} onChange={handleCountryChange} noArrow onBlur={onBlur} required={required}/>
|
|
43
|
-
<ComboFieldExpander>
|
|
44
|
-
<TextField type="tel" value={values.number} onChange={handleTextChange} name={names.number} onBlur={onBlur} error={!!error} required={required}/>
|
|
45
|
-
</ComboFieldExpander>
|
|
46
|
-
</ComboField>
|
|
47
|
-
{helperText ? (<FieldHelperText error={error}>{helperText}</FieldHelperText>) : null}
|
|
48
|
-
</Box>);
|
|
49
|
-
}
|
|
50
|
-
export default PhoneNumberField;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { withKnobs, boolean, text } from "@storybook/addon-knobs";
|
|
3
|
-
import CenterDecorator from "../../utils/center-decorator";
|
|
4
|
-
import PhoneNumberField from "./phone-number-field";
|
|
5
|
-
export default {
|
|
6
|
-
title: "PhoneNumberField",
|
|
7
|
-
decorators: [CenterDecorator, withKnobs],
|
|
8
|
-
};
|
|
9
|
-
export const PhoneNumberFieldStory = () => {
|
|
10
|
-
const [values, setValues] = useState({
|
|
11
|
-
number: "",
|
|
12
|
-
countryCallingCode: "",
|
|
13
|
-
country: "",
|
|
14
|
-
});
|
|
15
|
-
const label = text("Label", "Phone number");
|
|
16
|
-
const required = boolean("Required", false);
|
|
17
|
-
const helperText = text("Helper Text", "Enter an Australian or international phone number.");
|
|
18
|
-
const error = text("Error text", "");
|
|
19
|
-
return (<PhoneNumberField values={values} onChange={(value, name) => setValues(values => ({ ...values, [name]: value }))} label={label} helperText={helperText} required={required} error={error || null}/>);
|
|
20
|
-
};
|
|
21
|
-
PhoneNumberFieldStory.story = {
|
|
22
|
-
name: "default",
|
|
23
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { parsePhoneNumberFromString, } from "libphonenumber-js";
|
|
2
|
-
export function parseNationalPhoneNumber(phoneNumber, countryCallingCode, defaultCountry) {
|
|
3
|
-
let number;
|
|
4
|
-
// Try with the country code
|
|
5
|
-
if (countryCallingCode) {
|
|
6
|
-
number = parsePhoneNumberFromString("+" + countryCallingCode + phoneNumber, defaultCountry);
|
|
7
|
-
if (number && number.isValid())
|
|
8
|
-
return number;
|
|
9
|
-
}
|
|
10
|
-
// Try clipping the intital "0" from the number, if there is one
|
|
11
|
-
if ((countryCallingCode && phoneNumber.startsWith("0"), defaultCountry)) {
|
|
12
|
-
number = parsePhoneNumberFromString("+" + countryCallingCode + phoneNumber.substr(1));
|
|
13
|
-
if (number && number.isValid())
|
|
14
|
-
return number;
|
|
15
|
-
}
|
|
16
|
-
// Finally just try the number by itself
|
|
17
|
-
number = parsePhoneNumberFromString(phoneNumber, defaultCountry);
|
|
18
|
-
return number || null;
|
|
19
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import Radio from "./radio";
|
|
3
|
-
import { Flex } from "../layout";
|
|
4
|
-
function RadioGroup({ name, value, onChange, options, onBlur, onFocus, disabled, ...rest }) {
|
|
5
|
-
return (<Flex direction="column" {...rest}>
|
|
6
|
-
{options.map(option => (<Radio key={option.value} checked={option.value === value} label={option.label} name={name} value={option.value} onBlur={onBlur} onFocus={onFocus} onChange={onChange} disabled={disabled || option.disabled}/>))}
|
|
7
|
-
</Flex>);
|
|
8
|
-
}
|
|
9
|
-
export default RadioGroup;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import RadioGroup from "./radio-group";
|
|
3
|
-
import CenterDecorator from "../../utils/center-decorator";
|
|
4
|
-
export default {
|
|
5
|
-
title: "RadioGroup",
|
|
6
|
-
decorators: [CenterDecorator],
|
|
7
|
-
};
|
|
8
|
-
export const RadioGroupStory = () => {
|
|
9
|
-
const [value, setValue] = useState("");
|
|
10
|
-
return (<RadioGroup value={value} onChange={e => {
|
|
11
|
-
console.log(e.target.value);
|
|
12
|
-
setValue(e.target.value);
|
|
13
|
-
}} options={[
|
|
14
|
-
{ value: "1", label: "This is option one" },
|
|
15
|
-
{ value: "2", label: "This is the second option" },
|
|
16
|
-
{ value: "3", label: "This is the last option" },
|
|
17
|
-
]}/>);
|
|
18
|
-
};
|
|
19
|
-
RadioGroupStory.story = {
|
|
20
|
-
name: "default",
|
|
21
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import React, { Fragment, useState, useEffect } from "react";
|
|
2
|
-
import MDCRadio, { NativeRadioControl as MDCNativeRadioControl, } from "@material/react-radio";
|
|
3
|
-
import nanoid from "nanoid";
|
|
4
|
-
import classnames from "classnames";
|
|
5
|
-
import css from "styled-jsx/css";
|
|
6
|
-
import { useTheme, getColorToken } from "../../theme/theme";
|
|
7
|
-
const Radio = ({ id = "", color = "primary", label = "", value, name, className, wrapperClasses, ...rest }) => {
|
|
8
|
-
const [mainId, setMainId] = useState("");
|
|
9
|
-
const theme = useTheme();
|
|
10
|
-
const setColor = getColorToken(theme, "foreground", color);
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
setMainId(id || (name && value ? `name__${value}` : nanoid()));
|
|
13
|
-
}, [id, setMainId, name, value]);
|
|
14
|
-
const scope = css.resolve `
|
|
15
|
-
.mdc-radio {
|
|
16
|
-
--mdc-theme-secondary: ${setColor};
|
|
17
|
-
}
|
|
18
|
-
.mdc-form-field :global(label) {
|
|
19
|
-
font-family: ${theme.typography.fontFamily.brand};
|
|
20
|
-
font-weight: 500;
|
|
21
|
-
cursor: pointer;
|
|
22
|
-
}
|
|
23
|
-
`;
|
|
24
|
-
return (<Fragment>
|
|
25
|
-
<MDCRadio wrapperClasses={classnames(wrapperClasses, scope.className)} className={classnames(className, scope.className)} value={value} label={label} key={mainId}>
|
|
26
|
-
<MDCNativeRadioControl className={classnames(className)} value={value} name={name} id={mainId} {...rest}/>
|
|
27
|
-
</MDCRadio>
|
|
28
|
-
{scope.styles}
|
|
29
|
-
</Fragment>);
|
|
30
|
-
};
|
|
31
|
-
export default Radio;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import React, { useState, Fragment } from "react";
|
|
2
|
-
import CenterDecorator from "../../utils/center-decorator";
|
|
3
|
-
import Radio from "./radio";
|
|
4
|
-
export default {
|
|
5
|
-
title: "Radio",
|
|
6
|
-
decorators: [CenterDecorator],
|
|
7
|
-
};
|
|
8
|
-
export const RadioExample = () => {
|
|
9
|
-
const [checked, setChecked] = useState(false);
|
|
10
|
-
const handleClick = (event) => {
|
|
11
|
-
let targetValue = event.target.value ? true : false;
|
|
12
|
-
setChecked(targetValue);
|
|
13
|
-
};
|
|
14
|
-
return (<Fragment>
|
|
15
|
-
<Radio checked={checked} value="primary" onChange={handleClick}/>
|
|
16
|
-
<Radio color="secondary" checked={checked} value="secondary" onChange={handleClick}/>
|
|
17
|
-
<Radio color="muted" checked={checked} value="muted" onChange={handleClick}/>
|
|
18
|
-
</Fragment>);
|
|
19
|
-
};
|
|
20
|
-
RadioExample.story = {
|
|
21
|
-
name: "default",
|
|
22
|
-
};
|
|
23
|
-
export const RadioLabelExample = () => {
|
|
24
|
-
const [checked, setChecked] = useState(false);
|
|
25
|
-
const handleClick = (event) => {
|
|
26
|
-
let targetValue = event.target.value ? true : false;
|
|
27
|
-
setChecked(targetValue);
|
|
28
|
-
};
|
|
29
|
-
return (<Fragment>
|
|
30
|
-
<Radio label="Radio with Label" checked={checked} value="withLabel" onChange={handleClick}/>
|
|
31
|
-
</Fragment>);
|
|
32
|
-
};
|
|
33
|
-
RadioLabelExample.story = {
|
|
34
|
-
name: "with label",
|
|
35
|
-
};
|
|
36
|
-
export const RadioDisabledExample = () => {
|
|
37
|
-
return (<Fragment>
|
|
38
|
-
<Radio disabled={true} checked={true}/>
|
|
39
|
-
<Radio disabled={true} checked={false}/>
|
|
40
|
-
</Fragment>);
|
|
41
|
-
};
|
|
42
|
-
RadioDisabledExample.story = {
|
|
43
|
-
name: "disabled",
|
|
44
|
-
};
|