blob: 46063b2b98ce551be8941b89600324b1fcf9230e [file] [log] [blame]
AviZi280f8012017-06-09 02:39:56 +03001/*!
2 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
15 */
16import React from 'react';
talig8e9c0652017-12-20 14:30:43 +020017import PropTypes from 'prop-types';
Avi Zivb8e2faf2017-07-18 19:45:38 +030018import classnames from 'classnames';
AviZi280f8012017-06-09 02:39:56 +030019
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020020const GridSection = ({
21 title,
22 children,
23 className = '',
24 titleClassName,
andre.schmid36fa9cd2021-07-22 11:54:07 +010025 hasLastColSet = false,
26 required = false
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020027}) => {
28 return (
29 <div
30 className={classnames('grid-section', className, {
31 'has-last-col-set': hasLastColSet
32 })}>
33 {title && (
34 <div className={`section-title ${titleClassName || ''}`}>
35 {title}
andre.schmid36fa9cd2021-07-22 11:54:07 +010036 {required && <span className={'required'}>*</span>}
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020037 </div>
38 )}
39 <div className="grid-items">{children}</div>
40 </div>
41 );
AviZi280f8012017-06-09 02:39:56 +030042};
43
44GridSection.propTypes = {
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020045 title: PropTypes.string,
46 titleClassName: PropTypes.string,
47 hasLastColSet: PropTypes.bool
AviZi280f8012017-06-09 02:39:56 +030048};
49
50export default GridSection;