@mohamed-karawia/library 0.1.18 → 0.1.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. package/dist/stories/Chat/Chat.js +120 -3
  2. package/dist/stories/Common Inputs/Picker/Picker.js +61 -0
  3. package/dist/stories/Common Inputs/TextField/TextField.js +3 -1
  4. package/dist/stories/Community/Community.js +137 -0
  5. package/dist/stories/Events/Event/Event.js +116 -4
  6. package/dist/stories/Events/EventsList/EventsList.js +95 -16
  7. package/dist/stories/Forms/CreateSpace/CreateSpace.js +75 -0
  8. package/dist/stories/Library/Folders/Folders.js +80 -1
  9. package/dist/stories/Library/Notes/Notes.js +75 -1
  10. package/dist/stories/Modals/NavbarPreviewModal/NavbarPreviewModal.js +54 -0
  11. package/dist/stories/Music Album/ViewAlbum/ViewAlbum.js +134 -9
  12. package/dist/stories/Music Album/ViewAlbums/ViewAlbums.js +65 -23
  13. package/dist/stories/Navbar/Navbar.js +1 -1
  14. package/dist/stories/Pages/Events/Event/Event.js +14 -5
  15. package/dist/stories/Pages/Music/MusicAlbums/MusicAlbums.js +2 -15
  16. package/dist/stories/Photo Album/ViewAlbum/ViewAlbum.js +76 -9
  17. package/dist/stories/Photo Album/ViewAlbums/ViewAlbums.js +80 -9
  18. package/dist/stories/Preview/Preview.js +1 -0
  19. package/dist/stories/PreviewComponents/ChatPreview/ChatPreview.js +193 -0
  20. package/dist/stories/PreviewComponents/EventPreview/EventPreview.js +158 -0
  21. package/dist/stories/PreviewComponents/EventsPreview/EventsPreview.js +192 -0
  22. package/dist/stories/PreviewComponents/FoldersPreview/FoldersPreview.js +182 -0
  23. package/dist/stories/PreviewComponents/MusicAlbumPreview/MusicAlbumPreview.js +177 -0
  24. package/dist/stories/PreviewComponents/MusicAlbumsPreview/MusicAlbumsPreview.js +181 -0
  25. package/dist/stories/PreviewComponents/MusicPlayerPreview/MusicPlayerPreview.js +153 -0
  26. package/dist/stories/PreviewComponents/NavbarPreview/NavbarPreview.js +112 -0
  27. package/dist/stories/PreviewComponents/NotesPreview/NotesPreview.js +173 -0
  28. package/dist/stories/PreviewComponents/PhotoAlbumPreview/PhotoAlbumPreview.js +189 -0
  29. package/dist/stories/PreviewComponents/PhotoAlbumsPreview/PhotoAlbumsPreview.js +189 -0
  30. package/dist/stories/PreviewComponents/SpacesListPreview/SpacesListPreview.js +197 -0
  31. package/dist/stories/PreviewComponents/VideoAlbumPreview/VideoAlbumPreview.js +189 -0
  32. package/dist/stories/PreviewComponents/VideoAlbumsPreview/VideoAlbumsPreview.js +175 -0
  33. package/dist/stories/PreviewComponents/VideoPreview/VideoPreview.js +172 -0
  34. package/dist/stories/PreviewComponents/globalStyles.js +26 -0
  35. package/dist/stories/Reusable Components/Cards/Card-style-10/CardStyle10.js +4 -3
  36. package/dist/stories/Reusable Components/Cards/Card-style-11/CardStyle11.js +8 -4
  37. package/dist/stories/Reusable Components/Cards/Card-style-6/CardStyle6.js +10 -4
  38. package/dist/stories/Reusable Components/Cards/Card-style-8/CardStyle8.js +4 -2
  39. package/dist/stories/Reusable Components/Cards/globalCardStyles.js +2 -2
  40. package/dist/stories/Reusable Components/Community/Community.js +76 -0
  41. package/dist/stories/Reusable Components/Gallery/Gallery.js +12 -17
  42. package/dist/stories/Reusable Components/ReactModal/ReactModal.js +11 -30
  43. package/dist/stories/Reusable Components/ReusableForm/ReusableForm.js +19 -2
  44. package/dist/stories/Reusable Components/ReusableList/ReusableList.js +9 -5
  45. package/dist/stories/Reusable Components/Tabs/Tabs.js +68 -0
  46. package/dist/stories/Sections/Sections.js +8 -2
  47. package/dist/stories/VideoAlbum/AlbumsGallery/AlbumsGallery.js +77 -18
  48. package/dist/stories/VideoAlbum/VideoSpace/VideoSpace.js +96 -3
  49. package/dist/stories/VideoAlbum/ViewAlbum/ViewAlbum.js +77 -1
  50. package/dist/stories/Widgets/MusicPlayerWidget/MusicPlayerWidget.js +16 -10
  51. package/dist/stories/Widgets/SpacesListWidget/SpacesListWidget.js +115 -0
  52. package/dist/stories/Widgets/UsersWidget/UsersWidget.js +30 -0
  53. package/dist/stories/helpers/util.js +36 -3
  54. package/dist/stories/store/communities.js +943 -0
  55. package/dist/stories/store/store.js +44 -0
  56. package/package.json +5 -2
  57. package/src/stories/Chat/Chat.jsx +104 -5
  58. package/src/stories/Common Inputs/Picker/Picker.jsx +47 -0
  59. package/src/stories/Common Inputs/TextField/TextField.jsx +1 -1
  60. package/src/stories/Community/Community.jsx +110 -0
  61. package/src/stories/Events/Event/Event.jsx +97 -4
  62. package/src/stories/Events/EventsList/EventsList.jsx +91 -17
  63. package/src/stories/Forms/CreateSpace/CreateSpace.jsx +73 -0
  64. package/src/stories/Library/Folders/Folders.jsx +79 -1
  65. package/src/stories/Library/Notes/Notes.jsx +57 -1
  66. package/src/stories/Modals/NavbarPreviewModal/NavbarPreviewModal.jsx +31 -0
  67. package/src/stories/Music Album/ViewAlbum/ViewAlbum.jsx +125 -11
  68. package/src/stories/Music Album/ViewAlbums/ViewAlbums.jsx +56 -26
  69. package/src/stories/Navbar/Navbar.jsx +1 -1
  70. package/src/stories/Pages/Events/Event/Event.jsx +12 -4
  71. package/src/stories/Pages/Music/MusicAlbums/MusicAlbums.jsx +0 -13
  72. package/src/stories/Pages/ViewWorld/styles.json +1 -1
  73. package/src/stories/Photo Album/ViewAlbum/ViewAlbum.jsx +57 -4
  74. package/src/stories/Photo Album/ViewAlbums/ViewAlbums.jsx +62 -9
  75. package/src/stories/Preview/Preview.jsx +9 -1
  76. package/src/stories/PreviewComponents/ChatPreview/ChatPreview.jsx +132 -0
  77. package/src/stories/PreviewComponents/EventPreview/EventPreview.jsx +116 -0
  78. package/src/stories/PreviewComponents/EventsPreview/EventsPreview.jsx +132 -0
  79. package/src/stories/PreviewComponents/FoldersPreview/FoldersPreview.jsx +127 -0
  80. package/src/stories/PreviewComponents/MusicAlbumPreview/MusicAlbumPreview.jsx +124 -0
  81. package/src/stories/PreviewComponents/MusicAlbumsPreview/MusicAlbumsPreview.jsx +126 -0
  82. package/src/stories/PreviewComponents/MusicPlayerPreview/MusicPlayerPreview.jsx +113 -0
  83. package/src/stories/PreviewComponents/NavbarPreview/NavbarPreview.jsx +93 -0
  84. package/src/stories/PreviewComponents/NotesPreview/NotesPreview.jsx +122 -0
  85. package/src/stories/PreviewComponents/PhotoAlbumPreview/PhotoAlbumPreview.jsx +129 -0
  86. package/src/stories/PreviewComponents/PhotoAlbumsPreview/PhotoAlbumsPreview.jsx +129 -0
  87. package/src/stories/PreviewComponents/SpacesListPreview/SpacesListPreview.jsx +138 -0
  88. package/src/stories/PreviewComponents/VideoAlbumPreview/VideoAlbumPreview.jsx +129 -0
  89. package/src/stories/PreviewComponents/VideoAlbumsPreview/VideoAlbumsPreview.jsx +124 -0
  90. package/src/stories/PreviewComponents/VideoPreview/VideoPreview.jsx +125 -0
  91. package/src/stories/PreviewComponents/globalStyles.js +20 -0
  92. package/src/stories/Reusable Components/Cards/Card-style-10/CardStyle10.jsx +5 -2
  93. package/src/stories/Reusable Components/Cards/Card-style-11/CardStyle11.jsx +5 -5
  94. package/src/stories/Reusable Components/Cards/Card-style-6/CardStyle6.jsx +12 -6
  95. package/src/stories/Reusable Components/Cards/Card-style-8/CardStyle8.jsx +2 -2
  96. package/src/stories/Reusable Components/Cards/globalCardStyles.js +2 -1
  97. package/src/stories/Reusable Components/Community/Community.jsx +70 -0
  98. package/src/stories/Reusable Components/Gallery/Gallery.jsx +10 -9
  99. package/src/stories/Reusable Components/ReactModal/ReactModal.jsx +3 -25
  100. package/src/stories/Reusable Components/ReusableForm/ReusableForm.jsx +18 -6
  101. package/src/stories/Reusable Components/ReusableList/ReusableList.jsx +9 -4
  102. package/src/stories/Reusable Components/Tabs/Tabs.jsx +67 -0
  103. package/src/stories/Sections/Sections.jsx +5 -2
  104. package/src/stories/VideoAlbum/AlbumsGallery/AlbumsGallery.jsx +57 -16
  105. package/src/stories/VideoAlbum/VideoSpace/VideoSpace.jsx +70 -1
  106. package/src/stories/VideoAlbum/ViewAlbum/ViewAlbum.jsx +62 -3
  107. package/src/stories/Widgets/MusicPlayerWidget/MusicPlayerWidget.jsx +13 -6
  108. package/src/stories/Widgets/SpacesListWidget/SpacesListWidget.jsx +78 -0
  109. package/src/stories/Widgets/UsersWidget/UsersWidget.jsx +20 -0
  110. package/src/stories/helpers/util.js +24 -2
  111. package/src/stories/store/communities.js +705 -0
  112. package/src/stories/store/store.js +33 -0
  113. package/src/stories/styling.json +92 -0
@@ -99,9 +99,6 @@ const MusicAlbums = (props) => {
99
99
  cardBackgroundColor: 'black',
100
100
  cardTitleColor: 'white',
101
101
  onHoverBackgroundColor: '#F6891F',
102
- controlsStyles: {
103
- showOnHover: true,
104
- }
105
102
  },
106
103
  }}
107
104
  />
@@ -127,16 +124,6 @@ const MusicAlbums = (props) => {
127
124
  }}
128
125
  customCardStyles={{
129
126
  darkOnHover: true,
130
- controlsStyles: {
131
- showOnHover: true,
132
- position: 'center',
133
- dropdownFontColor: "white",
134
- iconBorderRadius: 100,
135
- iconSize: 40,
136
- iconsGap: 10,
137
- iconColor: 'white',
138
- containerPadding: 20,
139
- }
140
127
  }}
141
128
  cardClicked={cardClicked}
142
129
  />
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "containerStyle": {
3
- "backgroundColor": "red"
3
+ "backgroundColor": "white"
4
4
  },
5
5
  "headStyle": {},
6
6
  "bodyStyle": {},
@@ -6,10 +6,19 @@ import AddPhoto from '../../Forms/AddPhoto/AddPhoto'
6
6
  import Gallery from '../../Reusable Components/Gallery/Gallery';
7
7
  import Modal from '../../Reusable Components/ReactModal/ReactModal';
8
8
  import DetailedPhoto from '../DetailedPhoto/DetailedPhoto';
9
+ import PhotoAlbumPreview from '../../PreviewComponents/PhotoAlbumPreview/PhotoAlbumPreview';
10
+ import Tabs from '../../Reusable Components/Tabs/Tabs';
11
+ import Sections from '../../Sections/Sections';
12
+ import Community from '../../Reusable Components/Community/Community';
13
+
14
+
9
15
  import { AiOutlineArrowLeft, AiOutlineArrowRight, AiOutlineClose, AiOutlineFileAdd, AiFillDelete } from "react-icons/ai";
16
+ import { BsGear } from "react-icons/bs";
17
+
10
18
 
11
19
  const galleryControls = [
12
20
  { icon: (<AiOutlineFileAdd />), action: 'add', name: 'Add Photo' },
21
+ { icon: (<BsGear />), action: 'config', name: 'Config' },
13
22
  ]
14
23
 
15
24
  const cardControls = [
@@ -46,10 +55,27 @@ const ViewAlbum = ({
46
55
  }
47
56
  }
48
57
 
49
- const [showModal, setShowModal] = useState(false)
50
- const [showImgModal, setShowImgModal] = useState(false)
58
+ const [showModal, setShowModal] = useState(false);
59
+ const [showConfigModal, setShowConfigModal] = useState(false);
60
+ const [showImgModal, setShowImgModal] = useState(false);
51
61
  const [openedImgIndex, setOpenedImgIndex] = useState(null);
52
- const [openedImg, setOpenedImg] = useState(null)
62
+ const [openedImg, setOpenedImg] = useState(null);
63
+
64
+ const [centerContext, setCenterContext] = useState(<ViewAlbum album={album} />)
65
+
66
+ const formChanged = (values) => {
67
+ setCenterContext(<ViewAlbum album={album} {...values} />)
68
+ }
69
+
70
+ let tabs = [
71
+ {
72
+ title: 'New', id: 'preview'
73
+ },
74
+ {
75
+ title: 'Context', id: 'community'
76
+ }
77
+ ]
78
+
53
79
 
54
80
  const handleUserKeyPress = useCallback(event => {
55
81
  const { key } = event;
@@ -70,13 +96,18 @@ const ViewAlbum = ({
70
96
  case 'add':
71
97
  setShowModal(true)
72
98
  break;
99
+ case 'config':
100
+ setShowConfigModal(true)
101
+ break;
73
102
  default:
74
103
  break;
75
104
  }
76
105
  }
77
106
 
78
107
  const cardIconClicked = (action, index) => {
79
- props.cardIconClicked(action, index)
108
+ if (!props.preview) {
109
+ props.cardIconClicked(action, index)
110
+ }
80
111
  }
81
112
 
82
113
  const onAddPhoto = (photo) => {
@@ -154,6 +185,27 @@ const ViewAlbum = ({
154
185
  <AiOutlineArrowRight />
155
186
  </RightIconContainer>
156
187
  </Modal>
188
+ <Modal
189
+ modalIsOpen={showConfigModal}
190
+ closeModal={() => setShowConfigModal(false)}
191
+ exitModalButton={(e) => (
192
+ <div></div>
193
+ )}
194
+ >
195
+ <Tabs
196
+ title="Photo Album Config"
197
+ tabs={tabs}
198
+ id='styling'
199
+ >
200
+ <PhotoAlbumPreview
201
+ componentProps={{ album, title: props.title || 'Photo Album', preview: true }}
202
+ formChanged={formChanged}
203
+ />
204
+ <Community
205
+ center={centerContext}
206
+ id="community" />
207
+ </Tabs>
208
+ </Modal>
157
209
  </Container>
158
210
  )
159
211
  }
@@ -234,6 +286,7 @@ ViewAlbum.propTypes = {
234
286
  title: PropTypes.string,
235
287
  saveBtnText: PropTypes.string,
236
288
  saveBtnText: PropTypes.string,
289
+ preview: PropTypes.bool
237
290
  }
238
291
 
239
292
  export default ViewAlbum;
@@ -5,8 +5,13 @@ import PropTypes from 'prop-types';
5
5
  import CreateAlbum from '../../Forms/CreateAlbum/CreateAlbum'
6
6
  import Gallery from '../../Reusable Components/Gallery/Gallery';
7
7
  import Modal from '../../Reusable Components/ReactModal/ReactModal';
8
+ import PhotoAlbumsPreview from '../../PreviewComponents/PhotoAlbumsPreview/PhotoAlbumsPreview';
9
+ import Tabs from '../../Reusable Components/Tabs/Tabs';
10
+ import Sections from '../../Sections/Sections';
11
+ import Community from '../../Reusable Components/Community/Community';
8
12
 
9
13
  import { AiOutlineFileAdd, AiFillDelete } from "react-icons/ai";
14
+ import { BsGear } from "react-icons/bs";
10
15
 
11
16
  const cardControls = [
12
17
  { icon: (<AiFillDelete />), action: 'delete', name: 'Delete album' },
@@ -14,26 +19,51 @@ const cardControls = [
14
19
 
15
20
  const galleryControls = [
16
21
  { icon: (<AiOutlineFileAdd />), action: 'add', name: 'Add Album' },
22
+ { icon: (<BsGear />), action: 'config', name: 'Config' },
17
23
  ]
18
24
 
19
25
  const ViewAlbums = ({
20
26
  albums,
21
27
  ...props }) => {
22
28
 
23
- const [showModal, setShowModal] = useState(false)
29
+ const [showModal, setShowModal] = useState(false);
30
+ const [showConfigModal, setShowConfigModal] = useState(false);
31
+ const [centerContext, setCenterContext] = useState(<ViewAlbums albums={albums} />)
32
+
33
+ const formChanged = (values) => {
34
+ setCenterContext(<ViewAlbums albums={albums} {...values} />)
35
+ }
36
+
37
+
38
+ let tabs = [
39
+ {
40
+ title: 'New', id: 'preview'
41
+ },
42
+ {
43
+ title: 'Context', id: 'community'
44
+ }
45
+ ]
46
+
24
47
 
25
48
  const onIconClicked = (action) => {
26
- switch (action) {
27
- case 'add':
28
- setShowModal(true)
29
- break;
30
- default:
31
- break;
49
+ if (!props.preview) {
50
+ switch (action) {
51
+ case 'add':
52
+ setShowModal(true)
53
+ break;
54
+ case 'config':
55
+ setShowConfigModal(true)
56
+ break;
57
+ default:
58
+ break;
59
+ }
32
60
  }
33
61
  }
34
62
 
35
63
  const cardIconClicked = (action, index) => {
36
- props.cardIconClicked(action, index)
64
+ if (!props.preview) {
65
+ props.cardIconClicked(action, index)
66
+ }
37
67
  }
38
68
 
39
69
  const onAddAlbum = (album) => {
@@ -68,6 +98,28 @@ const ViewAlbums = ({
68
98
  saveHandler={onAddAlbum}
69
99
  cancelHandler={cancelHandler} />
70
100
  </Modal>
101
+ <Modal
102
+ modalIsOpen={showConfigModal}
103
+ closeModal={() => setShowConfigModal(false)}
104
+ exitModalButton={(e) => (
105
+ <div></div>
106
+ )}
107
+ >
108
+ <Tabs
109
+ title="Photo Albums Config"
110
+ tabs={tabs}
111
+ id='styling'
112
+ >
113
+ <PhotoAlbumsPreview
114
+ componentProps={{ albums, title: props.title || 'Photo Albums', preview: true }}
115
+ formChanged={formChanged}
116
+ id='preview'
117
+ />
118
+ <Community
119
+ center={centerContext}
120
+ id="community" />
121
+ </Tabs>
122
+ </Modal>
71
123
  </Container>
72
124
  )
73
125
  }
@@ -85,7 +137,8 @@ ViewAlbums.propTypes = {
85
137
  onAddAlbum: PropTypes.func,
86
138
  title: PropTypes.string,
87
139
  headerStyles: PropTypes.object,
88
- customCardStyles: PropTypes.object
140
+ customCardStyles: PropTypes.object,
141
+ preview: PropTypes.bool
89
142
  }
90
143
 
91
144
  export default ViewAlbums
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import styled from 'styled-components';
3
- import ProopTypes from 'prop-types';
3
+ import PropTypes from 'prop-types';
4
4
 
5
5
  import { getComponentType } from '../helpers/util';
6
6
 
@@ -24,4 +24,12 @@ const Container = styled.div`
24
24
  width: 100%;
25
25
  `
26
26
 
27
+ Preview.defaultProps = {};
28
+
29
+ Preview.propTypes = {
30
+ type: PropTypes.string,
31
+ componentProps: PropTypes.object,
32
+ stylingProps: PropTypes.object
33
+ }
34
+
27
35
  export default Preview;
@@ -0,0 +1,132 @@
1
+ import React, { useState } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Preview from '../../Preview/Preview';
4
+ import ReusableForm from '../../Reusable Components/ReusableForm/ReusableForm';
5
+
6
+ import { Container, Left, Right } from '../globalStyles';
7
+ import Picker from '../../Common Inputs/Picker/Picker';
8
+ import TextField from '../../Common Inputs/TextField/TextField';
9
+
10
+
11
+ const ChatPreview = (props) => {
12
+ const [chatStyles, setChatStyles] = useState({});
13
+ const initialValues = {
14
+ headerStyles: {
15
+ headerBackground: '',
16
+ padding: 0,
17
+ titleColor: '',
18
+ titleFontSize: '',
19
+ titleFontWeight: '',
20
+ controlsStyles: {
21
+ iconSize: '',
22
+ iconColor: ''
23
+ }
24
+ },
25
+ customCardStyles: {
26
+ cardBackgroundColor: '',
27
+ onHoverBackgroundColor: '',
28
+ cardRadius: '',
29
+ cardTitleFontSize: '',
30
+ cardTitleFontWeight: '',
31
+ cardTitleColor: '',
32
+ cardImageRadius: '',
33
+ cardDescriptionFontSize: '',
34
+ cardDescriptionColor: '',
35
+ cardPadding: 0,
36
+ imgSize: 0,
37
+ cardBorderSize: 0,
38
+ cardBorderColor: 'purple',
39
+ dateColor: ''
40
+ }
41
+ }
42
+
43
+ const sections = [
44
+ {
45
+ title: "Header Styles",
46
+ body: [
47
+ (<Picker label="Header Background" name="headerStyles.headerBackground" />),
48
+ (<TextField type="number" label="Padding" name="headerStyles.padding" />),
49
+ (<Picker label="Title Color" name="headerStyles.titleColor" />),
50
+ (<TextField type="number" label="Title Font Size" name="headerStyles.titleFontSize" />),
51
+ (<TextField type="number" label="Title Font Weight" name="headerStyles.titleFontWeight" />),
52
+ (<TextField type="number" label="Controls Size" name="headerStyles.controlsStyles.iconSize" />),
53
+ (<Picker label="Controls Color" name="headerStyles.controlsStyles.iconColor" />),
54
+ ]
55
+ },
56
+ {
57
+ title: "Card Styles",
58
+ body: [
59
+ (<Picker label="Card Background" name="customCardStyles.cardBackgroundColor" />),
60
+ (<Picker label="Hover Color" name="customCardStyles.onHoverBackgroundColor" />),
61
+ (<TextField type="number" label="Card Radius" name="customCardStyles.cardRadius" />),
62
+ (<TextField type="number" label="Title Font Size" name="customCardStyles.cardTitleFontSize" />),
63
+ (<TextField type="number" label="Title Font Weight" name="customCardStyles.cardTitleFontWeight" />),
64
+ (<Picker label="Title Color" name="customCardStyles.cardTitleColor" />),
65
+ (<TextField type="number" label="Card Image Radius" name="customCardStyles.cardImageRadius" />),
66
+ (<TextField type="number" label="Text Font Size" name="customCardStyles.cardDescriptionFontSize" />),
67
+ (<Picker label="Text Font Color" name="customCardStyles.cardDescriptionColor" />),
68
+ (<TextField type="number" label="Card Padding" name="customCardStyles.cardPadding" />),
69
+ (<TextField type="number" label="Image Size" name="customCardStyles.imgSize" />),
70
+ (<TextField type="number" label="Border Size" name="customCardStyles.cardBorderSize" />),
71
+ (<Picker label="Border Color" name="customCardStyles.cardBorderColor" />),
72
+ (<Picker label="Date Color" name="customCardStyles.dateColor" />),
73
+ ]
74
+ },
75
+ ]
76
+
77
+ const handleChange = (values) => {
78
+ if(values){
79
+ props.formChanged(values)
80
+ setChatStyles(values)
81
+ localStorage.setItem('formStyles', JSON.stringify(values))
82
+ }
83
+ }
84
+
85
+ const submitHandler = (values) => {
86
+ console.log(values);
87
+ }
88
+
89
+ const cancelHandler = () => {
90
+ console.log('Canceled')
91
+ }
92
+ return (
93
+ <Container>
94
+ <Left>
95
+ <ReusableForm
96
+ formTitle="Chat Styles"
97
+ initialValues={initialValues}
98
+ sections={sections}
99
+ headerStyles={{
100
+ padding: 10,
101
+ headerBackground: 'black',
102
+ titleColor: '#ffff',
103
+ }}
104
+ sectionHeaderStyles={{
105
+ padding: 6,
106
+ headerBackground: '#FE1744',
107
+ titleColor: '#ffff',
108
+ }}
109
+ bodyPadding={10}
110
+ saveBtnText="Save"
111
+ cancelBtnText="Cancel"
112
+ saveBtnHandle={submitHandler}
113
+ cancelHandler={cancelHandler}
114
+ handleChange={handleChange}
115
+ bodyRowGap={20}
116
+ bodyColumnGap={10}
117
+ />
118
+ </Left>
119
+ <Right>
120
+ <Preview type={'Chat'} componentProps={props.componentProps} stylingProps={chatStyles} />
121
+ </Right>
122
+ </Container>
123
+ );
124
+ };
125
+
126
+ ChatPreview.defaultProps = {};
127
+
128
+ ChatPreview.propTypes = {
129
+ componentProps: PropTypes.object
130
+ }
131
+
132
+ export default ChatPreview;
@@ -0,0 +1,116 @@
1
+ import React, { useState } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Preview from '../../Preview/Preview';
4
+ import ReusableForm from '../../Reusable Components/ReusableForm/ReusableForm';
5
+
6
+ import { Container, Left, Right } from '../globalStyles';
7
+ import Picker from '../../Common Inputs/Picker/Picker';
8
+ import TextField from '../../Common Inputs/TextField/TextField';
9
+
10
+ const EventPreview = (props) => {
11
+ const [eventStyles, setEventStyles] = useState({});
12
+ const initialValues = {
13
+ headerStyles: {
14
+ headerBackground: '',
15
+ padding: 0,
16
+ titleColor: '',
17
+ titleFontSize: '',
18
+ titleFontWeight: '',
19
+ controlsStyles: {
20
+ iconSize: '',
21
+ iconColor: ''
22
+ }
23
+ },
24
+ backgroundColor: '',
25
+ titleColor: '',
26
+ titleSize: '',
27
+ dateColor: '',
28
+ dateSize: '',
29
+ discColor: '',
30
+ discSize: '',
31
+ }
32
+
33
+ const sections = [
34
+ {
35
+ title: "Header Styles",
36
+ body: [
37
+ (<Picker label="Header Background" name="headerStyles.headerBackground" />),
38
+ (<TextField type="number" label="Padding" name="headerStyles.padding" />),
39
+ (<Picker label="Title Color" name="headerStyles.titleColor" />),
40
+ (<TextField type="number" label="Title Font Size" name="headerStyles.titleFontSize" />),
41
+ (<TextField type="number" label="Title Font Weight" name="headerStyles.titleFontWeight" />),
42
+ (<TextField type="number" label="Controls Size" name="headerStyles.controlsStyles.iconSize" />),
43
+ (<Picker label="Controls Color" name="headerStyles.controlsStyles.iconColor" />),
44
+ ]
45
+ },
46
+ {
47
+ title: "Event Styles",
48
+ body: [
49
+ (<Picker label="Background Color" name="backgroundColor" />),
50
+ (<Picker label="Title Color" name="titleColor" />),
51
+ (<TextField type="number" label="Title Size" name="titleSize" />),
52
+ (<Picker label="Date Color" name="dateColor" />),
53
+ (<TextField type="number" label="Date Size" name="dateSize" />),
54
+ (<Picker label="Discription Color" name="discColor" />),
55
+ (<TextField type="number" label="Discription Size" name="discSize" />),
56
+ ]
57
+ },
58
+ ]
59
+
60
+ const handleChange = (values) => {
61
+ if(values){
62
+ props.formChanged(values)
63
+ setEventStyles(values)
64
+ localStorage.setItem('formStyles', JSON.stringify(values))
65
+ }
66
+ }
67
+
68
+ const submitHandler = (values) => {
69
+ console.log(values);
70
+ }
71
+
72
+ const cancelHandler = () => {
73
+ console.log('Canceled')
74
+ }
75
+
76
+ return (
77
+ <Container>
78
+ <Left>
79
+ <ReusableForm
80
+ formTitle="Events Styles"
81
+ initialValues={initialValues}
82
+ sections={sections}
83
+ headerStyles={{
84
+ padding: 10,
85
+ headerBackground: 'black',
86
+ titleColor: '#ffff',
87
+ }}
88
+ sectionHeaderStyles={{
89
+ padding: 6,
90
+ headerBackground: '#FE1744',
91
+ titleColor: '#ffff',
92
+ }}
93
+ bodyPadding={10}
94
+ saveBtnText="Save"
95
+ cancelBtnText="Cancel"
96
+ saveBtnHandle={submitHandler}
97
+ cancelHandler={cancelHandler}
98
+ handleChange={handleChange}
99
+ bodyRowGap={20}
100
+ bodyColumnGap={10}
101
+ />
102
+ </Left>
103
+ <Right>
104
+ <Preview type={'Event'} componentProps={props.componentProps} stylingProps={eventStyles} />
105
+ </Right>
106
+ </Container>
107
+ );
108
+ };
109
+
110
+ EventPreview.defaultProps = {};
111
+
112
+ EventPreview.propTypes = {
113
+ componentProps: PropTypes.object
114
+ }
115
+
116
+ export default EventPreview;
@@ -0,0 +1,132 @@
1
+ import React, { useState } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Preview from '../../Preview/Preview';
4
+ import ReusableForm from '../../Reusable Components/ReusableForm/ReusableForm';
5
+
6
+ import { Container, Left, Right } from '../globalStyles';
7
+ import Picker from '../../Common Inputs/Picker/Picker';
8
+ import TextField from '../../Common Inputs/TextField/TextField';
9
+
10
+ const EventsPreview = (props) => {
11
+ const [eventsStyles, setEventsStyles] = useState({});
12
+ const initialValues = {
13
+ headerStyles: {
14
+ headerBackground: '',
15
+ padding: 0,
16
+ titleColor: '',
17
+ titleFontSize: '',
18
+ titleFontWeight: '',
19
+ controlsStyles: {
20
+ iconSize: '',
21
+ iconColor: ''
22
+ }
23
+ },
24
+ customCardStyles: {
25
+ cardBackgroundColor: '',
26
+ onHoverBackgroundColor: '',
27
+ cardRadius: '',
28
+ cardTitleFontSize: '',
29
+ cardTitleFontWeight: '',
30
+ cardTitleColor: '',
31
+ cardImageRadius: '',
32
+ iconColor: '',
33
+ cardPadding: 0,
34
+ imgSize: 0,
35
+ cardBorderSize: 0,
36
+ cardBorderColor: '',
37
+ dateColor: '',
38
+ controlsStyles: ''
39
+ }
40
+ }
41
+
42
+ const sections = [
43
+ {
44
+ title: "Header Styles",
45
+ body: [
46
+ (<Picker label="Header Background" name="headerStyles.headerBackground" />),
47
+ (<TextField type="number" label="Padding" name="headerStyles.padding" />),
48
+ (<Picker label="Title Color" name="headerStyles.titleColor" />),
49
+ (<TextField type="number" label="Title Font Size" name="headerStyles.titleFontSize" />),
50
+ (<TextField type="number" label="Title Font Weight" name="headerStyles.titleFontWeight" />),
51
+ (<TextField type="number" label="Controls Size" name="headerStyles.controlsStyles.iconSize" />),
52
+ (<Picker label="Controls Color" name="headerStyles.controlsStyles.iconColor" />),
53
+ ]
54
+ },
55
+ {
56
+ title: "Card Styles",
57
+ body: [
58
+ (<Picker label="Card Background" name="customCardStyles.cardBackgroundColor" />),
59
+ (<Picker label="Hover Color" name="customCardStyles.onHoverBackgroundColor" />),
60
+ (<TextField type="number" label="Card Radius" name="customCardStyles.cardRadius" />),
61
+ (<TextField type="number" label="Title Font Size" name="customCardStyles.cardTitleFontSize" />),
62
+ (<TextField type="number" label="Title Font Weight" name="customCardStyles.cardTitleFontWeight" />),
63
+ (<Picker label="Title Color" name="customCardStyles.cardTitleColor" />),
64
+ (<TextField type="number" label="Card Image Radius" name="customCardStyles.cardImageRadius" />),
65
+ (<TextField type="number" label="Card Padding" name="customCardStyles.cardPadding" />),
66
+ (<TextField type="number" label="Image Size" name="customCardStyles.imgSize" />),
67
+ (<TextField type="number" label="Border Size" name="customCardStyles.cardBorderSize" />),
68
+ (<Picker label="Border Color" name="customCardStyles.cardBorderColor" />),
69
+ (<Picker label="Icons Color" name="customCardStyles.iconColor" />),
70
+ (<Picker label="Date Color" name="customCardStyles.dateColor" />),
71
+ (<Picker label="Card Icon Color" name="customCardStyles.controlsStyles.iconColor" />),
72
+ ]
73
+ },
74
+ ]
75
+
76
+ const handleChange = (values) => {
77
+ if(values){
78
+ props.formChanged(values)
79
+ setEventsStyles(values)
80
+ localStorage.setItem('formStyles', JSON.stringify(values))
81
+ }
82
+ }
83
+
84
+ const submitHandler = (values) => {
85
+ console.log(values);
86
+ }
87
+
88
+ const cancelHandler = () => {
89
+ console.log('Canceled')
90
+ }
91
+
92
+ return (
93
+ <Container>
94
+ <Left>
95
+ <ReusableForm
96
+ formTitle="Events Styles"
97
+ initialValues={initialValues}
98
+ sections={sections}
99
+ headerStyles={{
100
+ padding: 10,
101
+ headerBackground: 'black',
102
+ titleColor: '#ffff',
103
+ }}
104
+ sectionHeaderStyles={{
105
+ padding: 6,
106
+ headerBackground: '#FE1744',
107
+ titleColor: '#ffff',
108
+ }}
109
+ bodyPadding={10}
110
+ saveBtnText="Save"
111
+ cancelBtnText="Cancel"
112
+ saveBtnHandle={submitHandler}
113
+ cancelHandler={cancelHandler}
114
+ handleChange={handleChange}
115
+ bodyRowGap={20}
116
+ bodyColumnGap={10}
117
+ />
118
+ </Left>
119
+ <Right>
120
+ <Preview type={'Events'} componentProps={props.componentProps} stylingProps={eventsStyles} />
121
+ </Right>
122
+ </Container>
123
+ );
124
+ };
125
+
126
+ EventsPreview.defaultProps = {};
127
+
128
+ EventsPreview.propTypes = {
129
+ componentProps: PropTypes.object
130
+ }
131
+
132
+ export default EventsPreview;