groundfloor-react-ui 1.0.18 → 1.0.21
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/components/Accordion/Accordion.js +83 -33
- package/components/Accordion/AccordionSB.js +50 -54
- package/components/Accordion/AccordionSBfooter.js +51 -55
- package/components/ArrowBar/ArrowBar.js +6 -23
- package/components/Avatar/Avatar.js +49 -45
- package/components/Avatar/AvatarSB.js +121 -92
- package/components/Avatar/AvatarSBfooter.js +113 -92
- package/components/Banner/Banner.js +40 -35
- package/components/Breadcrumb/Breadcrumb.js +178 -163
- package/components/Button/PrimaryButton.js +15 -8
- package/components/Button/SecondaryButton.js +11 -9
- package/components/Cards/Card.js +25 -30
- package/components/Cards/CardRef.js +41 -34
- package/components/Cards/DocumentCard.js +83 -89
- package/components/Divider/Divider.js +23 -30
- package/components/Drawer/Drawer.js +46 -55
- package/components/FilterChip/FilterChip.js +34 -32
- package/components/Form/HeaderComponent.js +57 -27
- package/components/GroupAvatars/GroupAvatars.js +12 -16
- package/components/GroupButtons/GroupButtonsPopup.js +3 -9
- package/components/Images/Image.js +16 -21
- package/components/Inputs/CheckBoxInput.js +71 -33
- package/components/Inputs/DateSelect.js +22 -17
- package/components/Inputs/DropdownSelect.js +86 -30
- package/components/Inputs/DropzoneInput.js +83 -68
- package/components/Inputs/NumericInput.js +66 -63
- package/components/Inputs/PasswordInput.js +36 -27
- package/components/Inputs/RadioInput.js +55 -29
- package/components/Inputs/Signature.js +88 -38
- package/components/Inputs/TextArea.js +24 -40
- package/components/Inputs/TextInput.js +43 -28
- package/components/Inputs/TimeInput.js +92 -107
- package/components/Inputs/ToggleSwitch.js +87 -59
- package/components/Modal/ModalComp.js +61 -37
- package/components/Pagination/Pagination.js +30 -54
- package/components/ProgressBar/ProgressBar.js +57 -40
- package/components/Rating/Rating.js +8 -14
- package/components/Sidebar/Navbar.js +196 -170
- package/components/Tables/Table.js +56 -34
- package/components/Tooltip/Tooltip.js +135 -141
- package/components/Typography/Typography.js +9 -10
- package/components/constants/defaultStyle.js +38 -41
- package/dist/index.es.js +675 -596
- package/dist/index.js +660 -581
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import styled, { css, useTheme } from 'styled-components';
|
|
4
4
|
import defaultThemeColor from '../constants/defaultThemeColor';
|
|
5
5
|
|
|
@@ -8,7 +8,7 @@ const TextBox = styled.div`
|
|
|
8
8
|
font-size: 21px;
|
|
9
9
|
border: 1px solid
|
|
10
10
|
${({ theme, isValid }) =>
|
|
11
|
-
|
|
11
|
+
isValid ? defaultThemeColor.border : theme.variant['error']};
|
|
12
12
|
border-radius: 4px;
|
|
13
13
|
padding: 5px;
|
|
14
14
|
display: inline-block;
|
|
@@ -20,10 +20,6 @@ const TextBox = styled.div`
|
|
|
20
20
|
}
|
|
21
21
|
`;
|
|
22
22
|
|
|
23
|
-
TextBox.defaultProps = {
|
|
24
|
-
theme: defaultThemeColor,
|
|
25
|
-
};
|
|
26
|
-
|
|
27
23
|
const Input = styled.input`
|
|
28
24
|
border: 0;
|
|
29
25
|
outline: 0;
|
|
@@ -32,12 +28,10 @@ const Input = styled.input`
|
|
|
32
28
|
padding: 0;
|
|
33
29
|
font-size: 21px;
|
|
34
30
|
width: 24px;
|
|
31
|
+
text-align:center;
|
|
35
32
|
background-color: ${({ theme }) => theme.bgColor};
|
|
36
33
|
`;
|
|
37
34
|
|
|
38
|
-
Input.defaultProps = {
|
|
39
|
-
theme: defaultThemeColor,
|
|
40
|
-
};
|
|
41
35
|
|
|
42
36
|
const requiredAsterisk = css`
|
|
43
37
|
&:after {
|
|
@@ -49,16 +43,14 @@ const requiredAsterisk = css`
|
|
|
49
43
|
const Label = styled.label`
|
|
50
44
|
display: block;
|
|
51
45
|
margin-bottom: ${({ labelInline, errMsg }) =>
|
|
52
|
-
|
|
46
|
+
labelInline && errMsg ? '18px' : '7px'};
|
|
53
47
|
margin-right: ${({ labelInline }) => (labelInline ? '7px' : '')};
|
|
54
48
|
color: ${({ theme }) => theme.variant['neutral-2']};
|
|
55
49
|
${({ required }) => (required ? requiredAsterisk : null)}
|
|
56
50
|
padding-bottom: 0px;
|
|
57
51
|
`;
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
theme: defaultThemeColor,
|
|
61
|
-
};
|
|
53
|
+
|
|
62
54
|
|
|
63
55
|
const inline = css`
|
|
64
56
|
display: flex;
|
|
@@ -78,9 +70,6 @@ const Form = styled.div`
|
|
|
78
70
|
}
|
|
79
71
|
`;
|
|
80
72
|
|
|
81
|
-
Form.defaultProps = {
|
|
82
|
-
theme: defaultThemeColor,
|
|
83
|
-
};
|
|
84
73
|
|
|
85
74
|
const Button = styled.button`
|
|
86
75
|
border: none;
|
|
@@ -93,103 +82,99 @@ const Button = styled.button`
|
|
|
93
82
|
cursor: pointer;
|
|
94
83
|
`;
|
|
95
84
|
|
|
96
|
-
Button.defaultProps = {
|
|
97
|
-
theme: defaultThemeColor,
|
|
98
|
-
};
|
|
99
|
-
|
|
100
85
|
export const TimeInput = ({
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
86
|
+
label,
|
|
87
|
+
errMsg,
|
|
88
|
+
hour,
|
|
89
|
+
minute,
|
|
90
|
+
period,
|
|
91
|
+
onChange,
|
|
92
|
+
...props
|
|
108
93
|
}) => {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
94
|
+
const activeTheme = useTheme() || defaultThemeColor;
|
|
95
|
+
|
|
96
|
+
function hourChange(evt) {
|
|
97
|
+
const num =
|
|
98
|
+
evt.currentTarget.value > 12
|
|
99
|
+
? 12
|
|
100
|
+
: parseFloat(evt.currentTarget.value) || 0;
|
|
101
|
+
onChange({ hour: num, minute, period });
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function minuteChange(evt) {
|
|
105
|
+
console.log('minute change', evt.currentTarget.value);
|
|
106
|
+
const num =
|
|
107
|
+
evt.currentTarget.value > 59
|
|
108
|
+
? 59
|
|
109
|
+
: parseFloat(evt.currentTarget.value) || 0;
|
|
110
|
+
onChange({ hour, minute: num, period });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function periodChange(evt) {
|
|
114
|
+
const p = period === 'AM' ? 'PM' : 'AM';
|
|
115
|
+
onChange({ hour, minute, period: p });
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return (
|
|
119
|
+
<Form theme={activeTheme} {...props}>
|
|
120
|
+
<Label theme={activeTheme} {...props} errMsg={errMsg}>
|
|
121
|
+
{label}
|
|
122
|
+
</Label>
|
|
123
|
+
<div>
|
|
124
|
+
<TextBox theme={activeTheme} {...props}>
|
|
125
|
+
<Input theme={activeTheme} value={hour} onChange={hourChange} />
|
|
126
|
+
:
|
|
127
|
+
<Input theme={activeTheme} value={minute} onChange={minuteChange} />
|
|
128
|
+
<Button theme={activeTheme} onClick={periodChange}>{period}</Button>
|
|
129
|
+
</TextBox>
|
|
130
|
+
<div className='err-text'>{errMsg}</div>
|
|
131
|
+
</div>
|
|
132
|
+
</Form>
|
|
133
|
+
);
|
|
149
134
|
};
|
|
150
135
|
|
|
151
136
|
TimeInput.propTypes = {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Label of Input
|
|
139
|
+
*/
|
|
140
|
+
label: PropTypes.string,
|
|
141
|
+
/**
|
|
142
|
+
* Hour value
|
|
143
|
+
*/
|
|
144
|
+
hour: PropTypes.number.isRequired,
|
|
145
|
+
/**
|
|
146
|
+
* Minute value
|
|
147
|
+
*/
|
|
148
|
+
minute: PropTypes.number.isRequired,
|
|
149
|
+
/**
|
|
150
|
+
* AM or PM ?
|
|
151
|
+
*/
|
|
152
|
+
period: PropTypes.string.isRequired,
|
|
153
|
+
/**
|
|
154
|
+
* Is the input required?
|
|
155
|
+
*/
|
|
156
|
+
required: PropTypes.bool,
|
|
157
|
+
/**
|
|
158
|
+
* Should label be inline?
|
|
159
|
+
*/
|
|
160
|
+
labelInline: PropTypes.bool,
|
|
161
|
+
/**
|
|
162
|
+
* Is the input correct?
|
|
163
|
+
*/
|
|
164
|
+
isValid: PropTypes.bool,
|
|
165
|
+
/**
|
|
166
|
+
* Error Message
|
|
167
|
+
*/
|
|
168
|
+
errMsg: PropTypes.string,
|
|
184
169
|
};
|
|
185
170
|
|
|
186
171
|
TimeInput.defaultProps = {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
172
|
+
label: '',
|
|
173
|
+
hour: 0,
|
|
174
|
+
minute: 0,
|
|
175
|
+
period: 'AM',
|
|
176
|
+
required: false,
|
|
177
|
+
labelInline: false,
|
|
178
|
+
isValid: true,
|
|
179
|
+
errMsg: '',
|
|
195
180
|
};
|
|
@@ -1,85 +1,116 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import styled from "styled-components";
|
|
3
1
|
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styled, { useTheme } from 'styled-components';
|
|
4
4
|
import defaultStyles from '../constants/defaultStyle';
|
|
5
|
-
import getDefaultStyles from '../constants/utils';
|
|
6
5
|
import defaultThemeColor from '../constants/defaultThemeColor';
|
|
6
|
+
import getDefaultStyles from '../constants/utils';
|
|
7
7
|
|
|
8
8
|
const CheckBoxWrapper = styled.div`
|
|
9
|
-
${({
|
|
10
|
-
return getDefaultStyles(
|
|
9
|
+
${({ inBuiltCss, defaultCheckBoxWrapperStyle }) => {
|
|
10
|
+
return getDefaultStyles(inBuiltCss, defaultCheckBoxWrapperStyle);
|
|
11
11
|
}}
|
|
12
12
|
`;
|
|
13
13
|
const CheckBoxLabel = styled.label`
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return getDefaultStyles(
|
|
14
|
+
//Set the styles from the default styles object
|
|
15
|
+
${({ inBuiltCss, defaultCheckBoxLabelStyle }) => {
|
|
16
|
+
return getDefaultStyles(inBuiltCss, defaultCheckBoxLabelStyle);
|
|
17
17
|
}}
|
|
18
|
-
|
|
19
|
-
backgroundColor
|
|
18
|
+
background-color: ${({ checked, backgroundColor, disabledColor, theme }) => {
|
|
19
|
+
if (checked && backgroundColor) return backgroundColor;
|
|
20
|
+
else if (checked && !backgroundColor) return theme.primary['primary-1'];
|
|
21
|
+
else if (!checked && disabledColor) return disabledColor;
|
|
22
|
+
else if (!checked && !disabledColor) return theme.neutral['neutral-2'];
|
|
23
|
+
}};
|
|
24
|
+
// custom styles
|
|
25
|
+
${({ customToggleBoxStyle }) => customToggleBoxStyle}
|
|
26
|
+
&:before {
|
|
27
|
+
content: '';
|
|
28
|
+
display: block;
|
|
29
|
+
border-radius: 50%;
|
|
30
|
+
width: 16px;
|
|
31
|
+
height: 16px;
|
|
32
|
+
margin-top: 3px;
|
|
33
|
+
background: ${({ switchColor, theme }) =>
|
|
34
|
+
switchColor ? switchColor : theme.bgColor};
|
|
35
|
+
transition: 0.2s;
|
|
36
|
+
margin-left: ${({ checked }) => (checked ? '4px' : '25px')};
|
|
37
|
+
|
|
20
38
|
// custom styles
|
|
21
|
-
${({
|
|
22
|
-
|
|
23
|
-
content: "";
|
|
24
|
-
display: block;
|
|
25
|
-
border-radius: 50%;
|
|
26
|
-
width: 16px;
|
|
27
|
-
height: 16px;
|
|
28
|
-
margin-top: 3px;
|
|
29
|
-
background: ${({ switchColor }) => switchColor};
|
|
30
|
-
transition: 0.2s;
|
|
31
|
-
margin-left: ${({ checked }) => checked ? '4px' : '25px'};
|
|
32
|
-
|
|
33
|
-
// custom styles
|
|
34
|
-
${({ customSwitchStyle }) => customSwitchStyle}
|
|
35
|
-
}
|
|
39
|
+
${({ customSwitchStyle }) => customSwitchStyle}
|
|
40
|
+
}
|
|
36
41
|
`;
|
|
37
42
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
height: 22px;
|
|
46
|
-
cursor: pointer;
|
|
43
|
+
const CheckBox = styled.input.attrs({ type: 'checkbox' })`
|
|
44
|
+
opacity: 0;
|
|
45
|
+
z-index: 1;
|
|
46
|
+
border-radius: 31px;
|
|
47
|
+
width: 45px;
|
|
48
|
+
height: 22px;
|
|
49
|
+
cursor: pointer;
|
|
47
50
|
`;
|
|
48
51
|
|
|
49
52
|
const OptionText = styled.span`
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return getDefaultStyles(
|
|
53
|
+
//Set the styles from the default styles object
|
|
54
|
+
${({ inBuiltCss, defaultOptionTextStyle }) => {
|
|
55
|
+
return getDefaultStyles(inBuiltCss, defaultOptionTextStyle);
|
|
53
56
|
}}
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
|
|
58
|
+
// custom styles
|
|
56
59
|
${({ optionStyle }) => optionStyle}
|
|
57
60
|
`;
|
|
58
61
|
|
|
59
|
-
export const ToggleSwitch = ({
|
|
62
|
+
export const ToggleSwitch = ({
|
|
63
|
+
checked,
|
|
64
|
+
customSwitchStyle,
|
|
65
|
+
customToggleBoxStyle,
|
|
66
|
+
backgroundColor,
|
|
67
|
+
disabledColor,
|
|
68
|
+
switchColor,
|
|
69
|
+
onClick,
|
|
70
|
+
trueLabel,
|
|
71
|
+
falseLabel,
|
|
72
|
+
optionStyle,
|
|
73
|
+
...props
|
|
74
|
+
}) => {
|
|
75
|
+
const activeTheme = useTheme() || defaultThemeColor;
|
|
76
|
+
|
|
60
77
|
return (
|
|
61
|
-
<CheckBoxWrapper
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
78
|
+
<CheckBoxWrapper
|
|
79
|
+
inBuiltCss={defaultStyles}
|
|
80
|
+
defaultCheckBoxWrapperStyle={'toggle-switch-wrapper'}
|
|
81
|
+
{...props}
|
|
82
|
+
>
|
|
83
|
+
<CheckBox
|
|
84
|
+
{...props}
|
|
85
|
+
id='checkbox'
|
|
86
|
+
inBuiltCss={defaultStyles}
|
|
65
87
|
defaultCheckBoxStyle={'toggle-switch-checkbox'}
|
|
66
|
-
onClick={() => {
|
|
88
|
+
onClick={() => {
|
|
89
|
+
onClick(!checked);
|
|
90
|
+
}}
|
|
67
91
|
isChecked={checked}
|
|
68
92
|
/>
|
|
69
|
-
<CheckBoxLabel
|
|
70
|
-
|
|
93
|
+
<CheckBoxLabel
|
|
94
|
+
{...props}
|
|
95
|
+
htmlFor='checkbox'
|
|
71
96
|
customToggleBoxStyle={customToggleBoxStyle}
|
|
72
97
|
customSwitchStyle={customSwitchStyle}
|
|
73
98
|
disabledColor={disabledColor}
|
|
74
99
|
backgroundColor={backgroundColor}
|
|
75
100
|
switchColor={switchColor}
|
|
76
|
-
|
|
101
|
+
inBuiltCss={defaultStyles}
|
|
77
102
|
defaultCheckBoxLabelStyle={'toggle-switch-checkbox-label'}
|
|
78
103
|
checked={checked}
|
|
104
|
+
theme={activeTheme}
|
|
79
105
|
/>
|
|
80
|
-
<OptionText
|
|
81
|
-
|
|
82
|
-
|
|
106
|
+
<OptionText
|
|
107
|
+
optionStyle={optionStyle}
|
|
108
|
+
inBuiltCss={defaultStyles}
|
|
109
|
+
defaultOptionTextStyle={'toggle-switch-option-text'}
|
|
110
|
+
{...props}
|
|
111
|
+
>
|
|
112
|
+
{checked ? trueLabel : falseLabel}
|
|
113
|
+
</OptionText>
|
|
83
114
|
</CheckBoxWrapper>
|
|
84
115
|
);
|
|
85
116
|
};
|
|
@@ -103,21 +134,18 @@ ToggleSwitch.propTypes = {
|
|
|
103
134
|
checked: PropTypes.bool,
|
|
104
135
|
/**
|
|
105
136
|
* label when toggle state is checked
|
|
106
|
-
|
|
137
|
+
* */
|
|
107
138
|
trueLabel: PropTypes.string,
|
|
108
139
|
/**
|
|
109
140
|
* label when toggle state is not checked
|
|
110
|
-
|
|
141
|
+
* */
|
|
111
142
|
falseLabel: PropTypes.string,
|
|
112
|
-
}
|
|
143
|
+
};
|
|
113
144
|
|
|
114
145
|
ToggleSwitch.defaultProps = {
|
|
115
|
-
backgroundColor: `${defaultThemeColor.primary['primary-1']}`,
|
|
116
|
-
switchColor: `${defaultThemeColor.bgColor}`,
|
|
117
|
-
disabledColor: `${defaultThemeColor.neutral['neutral-2']}`,
|
|
118
146
|
checked: false,
|
|
119
147
|
trueLabel: 'Yes',
|
|
120
148
|
falseLabel: 'No',
|
|
121
149
|
customSwitchStyle: {},
|
|
122
|
-
customToggleBoxStyle: {}
|
|
123
|
-
}
|
|
150
|
+
customToggleBoxStyle: {},
|
|
151
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import Modal from 'react-modal';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
+
import styled, { useTheme } from 'styled-components';
|
|
4
5
|
import defaultStyles from '../constants/defaultStyle';
|
|
6
|
+
import defaultThemeColor from '../constants/defaultThemeColor';
|
|
5
7
|
import getDefaultStyles from '../constants/utils';
|
|
6
|
-
import PropTypes from 'prop-types';
|
|
7
8
|
import { Icon } from '../Icon';
|
|
8
|
-
import defaultThemeColor from '../constants/defaultThemeColor';
|
|
9
9
|
|
|
10
10
|
const customStyles = {
|
|
11
11
|
overlay: {
|
|
@@ -21,8 +21,9 @@ const customStyles = {
|
|
|
21
21
|
marginRight: '-50%',
|
|
22
22
|
padding: '0px',
|
|
23
23
|
transform: 'translate(-50%, -50%)',
|
|
24
|
-
maxHeight: '75vh',
|
|
25
24
|
minWidth: '40vw',
|
|
25
|
+
maxHeight: '85vh',
|
|
26
|
+
overflow: 'hidden',
|
|
26
27
|
},
|
|
27
28
|
};
|
|
28
29
|
|
|
@@ -56,6 +57,7 @@ const ModalHeader = styled.div`
|
|
|
56
57
|
${({ customModalHeaderStyle }) => customModalHeaderStyle}
|
|
57
58
|
`;
|
|
58
59
|
const ModalBody = styled.div`
|
|
60
|
+
|
|
59
61
|
//Set the styles from the default styles object
|
|
60
62
|
${({ theme, type }) => {
|
|
61
63
|
return getDefaultStyles(theme, type);
|
|
@@ -64,6 +66,11 @@ const ModalBody = styled.div`
|
|
|
64
66
|
${({ customModalBodyStyle }) => customModalBodyStyle}
|
|
65
67
|
`;
|
|
66
68
|
|
|
69
|
+
const ContentWrapper = styled.div`
|
|
70
|
+
max-height: 60vh;
|
|
71
|
+
overflow-y: scroll;
|
|
72
|
+
`
|
|
73
|
+
|
|
67
74
|
const ModalFooter = styled.div`
|
|
68
75
|
//Set the styles from the default styles object
|
|
69
76
|
${({ theme, type }) => {
|
|
@@ -74,9 +81,19 @@ const ModalFooter = styled.div`
|
|
|
74
81
|
`;
|
|
75
82
|
|
|
76
83
|
const CommonDiv = styled.div`
|
|
77
|
-
padding:
|
|
84
|
+
padding: .5rem 3rem 0rem 3rem;
|
|
78
85
|
`;
|
|
79
86
|
|
|
87
|
+
const HeaderWrapper = styled.div`
|
|
88
|
+
position: sticky;
|
|
89
|
+
background-color: ${({ theme }) => theme.bgColor};
|
|
90
|
+
width: 100%;
|
|
91
|
+
top: 0px;
|
|
92
|
+
border-bottom: 1px solid ${({ theme }) => theme.border}
|
|
93
|
+
|
|
94
|
+
`
|
|
95
|
+
|
|
96
|
+
|
|
80
97
|
try {
|
|
81
98
|
Modal.setAppElement('#root')
|
|
82
99
|
|
|
@@ -84,6 +101,7 @@ try {
|
|
|
84
101
|
Modal.setAppElement('#__next')
|
|
85
102
|
}
|
|
86
103
|
|
|
104
|
+
|
|
87
105
|
export const ModalComp = ({
|
|
88
106
|
modalIsOpen,
|
|
89
107
|
toggleModal,
|
|
@@ -97,6 +115,8 @@ export const ModalComp = ({
|
|
|
97
115
|
customModalFooterStyle,
|
|
98
116
|
...props
|
|
99
117
|
}) => {
|
|
118
|
+
const activeTheme = useTheme() || defaultThemeColor;
|
|
119
|
+
|
|
100
120
|
return (
|
|
101
121
|
<Modal
|
|
102
122
|
isOpen={modalIsOpen}
|
|
@@ -105,38 +125,42 @@ export const ModalComp = ({
|
|
|
105
125
|
contentLabel='Modal'
|
|
106
126
|
{...props}
|
|
107
127
|
>
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
128
|
+
<HeaderWrapper theme={activeTheme}>
|
|
129
|
+
<ModalClose
|
|
130
|
+
theme={defaultStyles}
|
|
131
|
+
type={'modalComp-modal-close'}
|
|
132
|
+
style={customModalCloseStyle}
|
|
133
|
+
onClick={toggleModal}
|
|
134
|
+
>
|
|
135
|
+
<Icon
|
|
136
|
+
icon='cross-icon'
|
|
137
|
+
color={defaultThemeColor.neutral['neutral-2']}
|
|
138
|
+
size={15}
|
|
139
|
+
/>
|
|
140
|
+
</ModalClose>
|
|
141
|
+
|
|
142
|
+
<ModalHeader style={customModalHeaderStyle}>
|
|
143
|
+
<CommonDiv>{headerContent}</CommonDiv>
|
|
144
|
+
</ModalHeader>
|
|
145
|
+
</HeaderWrapper>
|
|
146
|
+
<ContentWrapper>
|
|
147
|
+
<ModalBody
|
|
148
|
+
theme={defaultStyles}
|
|
149
|
+
type={'modalComp-modal-body'}
|
|
150
|
+
style={customModalBodyStyle}
|
|
151
|
+
>
|
|
152
|
+
<CommonDiv> {bodyContent}
|
|
153
|
+
</CommonDiv>
|
|
154
|
+
</ModalBody>
|
|
155
|
+
|
|
156
|
+
<ModalFooter
|
|
157
|
+
theme={defaultStyles}
|
|
158
|
+
type={'modalComp-modal-footer'}
|
|
159
|
+
style={customModalFooterStyle}
|
|
160
|
+
>
|
|
161
|
+
{footerContent}
|
|
162
|
+
</ModalFooter>
|
|
163
|
+
</ContentWrapper>
|
|
140
164
|
</Modal>
|
|
141
165
|
);
|
|
142
166
|
};
|