// Copyright 2020 Thomas Hintz
//
// This file is part of the Alpha Centauri Farming project.
//
// The Alpha Centauri Farming project is free software: you can
// redistribute it and/or modify it under the terms of the GNU General
// Public License as published by the Free Software Foundation, either
// version 3 of the License, or (at your option) any later version.
//
// The Alpha Centauri Farming project is distributed in the hope that
// it will be useful, but WITHOUT ANY WARRANTY; without even the
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE.  See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with the Alpha Centauri Farming project.  If not, see
// <https://www.gnu.org/licenses/>.

import React, { Fragment } from 'react'

export { GroupBox, Row, Col, Button }

const GroupBox = (props) => {
    return (
        <div className='panel card'>
            {props.title ?
             (<div className='card-divider'>
                 {props.title}
             </div>) : (<Fragment />)}
            <div className={'card-section ' + props.className ? props.className : ''}>
                {props.children}
            </div>
        </div>
    );
}

const Row = (props) => {
    return (<div className={'grid-x full-width ' +
                                 (props.collapse ? 'collapse' : '') + ' ' +
                                 (props.className ? props.className : '')} >
        {props.children}</div>);
}

const Col = (props) => {
    return (
        <div className={'cell small-' + props.width + ' ' + (props.className ? props.className : '')}>
            {props.children}
        </div>
    );
}

const Button = (props) => {
    return (
        <button className={'button ' + (props.size ? props.size : '') +
                           ' ' + (props.className ? props.className : '')}
                type={props.type || 'button'}
                disabled={props.disabled}
                onClick={props.onClick} >
            {props.children}
        </button>
    );
}
