@fortawesome/free-solid-svg-icons#faMinus JavaScript Examples
The following examples show how to use
@fortawesome/free-solid-svg-icons#faMinus.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Accordion.js From fellowship-program-website with MIT License | 5 votes |
AccordionSection = ({
i,
expanded,
setExpanded,
headerText,
children,
}) => {
const isOpen = expanded[i] === true
const icon = isOpen ? faMinus : faPlus
// By using `AnimatePresence` to mount and unmount the contents, we can animate
// them in and out while also only rendering the contents of open accordions
return (
<Container>
<Header
initial={false}
animate={{
backgroundColor: isOpen ? styles.colorWhite : styles.colorWhite,
color: isOpen ? styles.colorGrayDarkest : styles.colorGrayDarkest,
}}
onClick={() => setExpanded({ ...expanded, [i]: isOpen ? false : true })}
>
<span>
<Icon icon={icon} />
</span>
<span>{headerText}</span>
</Header>
<AnimatePresence initial={false}>
{isOpen && (
<Section
key="content"
initial="collapsed"
animate="open"
exit="collapsed"
variants={{
open: { opacity: 1, height: "auto" },
collapsed: { opacity: 0, height: 0 },
}}
transition={{ duration: 0.8, ease: [0.04, 0.62, 0.23, 0.98] }}
>
<Content
variants={{ collapsed: { scale: 0.8 }, open: { scale: 1 } }}
transition={{ duration: 0.8 }}
className="accordion-content"
>
{children}
</Content>
</Section>
)}
</AnimatePresence>
</Container>
)
}
Example #2
Source File: Enrollments.jsx From frontend-app-support-tools with GNU Affero General Public License v3.0 | 4 votes |
export default function Enrollments({
user,
searchStr,
}) {
const { add, clear } = useContext(UserMessagesContext);
const [formType, setFormType] = useState(null);
const [enrollmentData, setEnrollmentData] = useState(null);
const [enrollmentToChange, setEnrollmentToChange] = useState(undefined);
const [selectedCourseId, setSelectedCourseId] = useState(undefined);
const formRef = useRef(null);
const changeHandler = () => setEnrollmentData(null);
useEffect(() => {
if (enrollmentData === null) {
clear('enrollments');
getEnrollments(user).then((result) => {
const camelCaseResult = camelCaseObject(result);
if (camelCaseResult.errors) {
camelCaseResult.errors.forEach(error => add(error));
setEnrollmentData([]);
} else {
setEnrollmentData(camelCaseResult);
}
});
}
}, [user, enrollmentData]);
const tableData = useMemo(() => {
if (enrollmentData === null || enrollmentData.length === 0) {
return [];
}
return enrollmentData.filter(
enrollment => (enrollment.courseId.toLowerCase().includes(searchStr)
|| enrollment.courseName.toLowerCase().includes(searchStr)),
).map(enrollment => ({
expander: {
lastModified: enrollment.manualEnrollment ? enrollment.manualEnrollment.timeStamp : 'N/A',
lastModifiedBy: enrollment.manualEnrollment && enrollment.manualEnrollment.enrolledBy ? enrollment.manualEnrollment.enrolledBy : 'N/A',
reason: enrollment.manualEnrollment && enrollment.manualEnrollment.reason ? enrollment.manualEnrollment.reason : 'N/A',
},
enterpriseCourseEnrollments: enrollment.enterpriseCourseEnrollments?.map((ece => ({
enterpriseCustomerName: ece.enterpriseCustomerName,
consentProvided: formatBoolean(ece.dataSharingConsent?.consentProvided),
consentRequired: formatBoolean(ece.dataSharingConsent?.consentRequired),
license: ece.license?.uuid ?? 'N/A',
isLicenseRevoked: formatBoolean(ece.license?.isRevoked),
}))),
courseId: enrollment.courseId,
courseName: enrollment.courseName,
courseStart: enrollment.courseStart,
courseEnd: enrollment.courseEnd,
upgradeDeadline: enrollment.verifiedUpgradeDeadline,
created: enrollment.created,
pacingType: enrollment.pacingType,
active: formatBoolean(enrollment.isActive),
mode: enrollment.mode,
actions: (
<Dropdown>
<Dropdown.Toggle variant="sm">
Actions
</Dropdown.Toggle>
<Dropdown.Menu>
<Dropdown.Item
onClick={() => {
setEnrollmentToChange(enrollment);
setFormType(CHANGE);
}}
className="small"
>
Change Enrollment
</Dropdown.Item>
<Dropdown.Item
onClick={() => {
setSelectedCourseId(enrollment.courseId);
}}
className="small"
>
View Certificate
</Dropdown.Item>
</Dropdown.Menu>
</Dropdown>
),
}));
}, [enrollmentData, searchStr]);
const defaultSortColumn = [{
id: 'enrollmentDate',
desc: true,
}];
useLayoutEffect(() => {
if (formType != null) {
formRef.current.focus();
}
});
const expandAllRowsHandler = ({ getToggleAllRowsExpandedProps, isAllRowsExpanded }) => (
<a {...getToggleAllRowsExpandedProps()} className="link-primary">
{ isAllRowsExpanded ? 'Collapse All' : 'Expand All' }
</a>
);
expandAllRowsHandler.propTypes = {
getToggleAllRowsExpandedProps: PropTypes.func.isRequired,
isAllRowsExpanded: PropTypes.bool.isRequired,
};
const rowExpandHandler = ({ row }) => (
// We can use the getToggleRowExpandedProps prop-getter
// to build the expander.
<div className="text-center">
<span {...row.getToggleRowExpandedProps()}>
{row.isExpanded ? (
<FontAwesomeIcon icon={faMinus} />
) : <FontAwesomeIcon icon={faPlus} />}
</span>
</div>
);
rowExpandHandler.propTypes = {
row: PropTypes.shape({
isExpanded: PropTypes.bool,
getToggleRowExpandedProps: PropTypes.func,
}).isRequired,
};
const columns = React.useMemo(
() => [
{
// Make an expander column
Header: expandAllRowsHandler,
id: 'expander',
Cell: rowExpandHandler, // Use Cell to render an expander for each row.
},
{ // eslint-disable-next-line react/prop-types
Header: 'Course Run ID', accessor: 'courseId', Cell: ({ value }) => <a href={`${getConfig().LMS_BASE_URL}/courses/${value}`} rel="noopener noreferrer" target="_blank" className="word_break">{value}</a>, sortable: true,
},
{
Header: 'Course Title', accessor: 'courseName', sortable: true,
},
{
Header: 'Course Start', accessor: 'courseStart', Cell: ({ value }) => formatDate(value), sortable: true,
},
{
Header: 'Course End', accessor: 'courseEnd', Cell: ({ value }) => formatDate(value), sortable: true,
},
{
Header: 'Upgrade Deadline', accessor: 'upgradeDeadline', Cell: ({ value }) => formatDate(value), sortable: true,
},
{
Header: 'Enrollment Date', accessor: 'created', Cell: ({ value }) => formatDate(value), sortable: true, id: 'enrollmentDate',
},
{
Header: 'Pacing Type', accessor: 'pacingType', sortable: true,
},
{
Header: 'Mode', accessor: 'mode', sortable: true,
},
{
Header: 'Active', accessor: 'active', sortable: true,
},
{
Header: 'Actions', accessor: 'actions',
},
],
[],
);
const extraColumns = React.useMemo(
() => [
{
Header: 'Last Modified', accessor: 'lastModified', Cell: ({ value }) => formatDate(value),
},
{
Header: 'Last Modified By', accessor: 'lastModifiedBy',
},
{
Header: 'Reason', accessor: 'reason',
},
],
[],
);
const enterpriseCourseEnrollmentColumns = [
{
Header: 'Enterprise Name',
accessor: 'enterpriseCustomerName',
},
{
Header: 'Data Sharing Consent Provided',
accessor: 'consentProvided',
},
{
Header: 'Data Sharing Consent Required',
accessor: 'consentRequired',
},
{
Header: 'License',
accessor: 'license',
},
{
Header: 'License Revoked',
accessor: 'isLicenseRevoked',
},
];
/* eslint-disable react/prop-types */
const renderRowSubComponent = useCallback(
({ row }) => (
<>
<Table
data={[row.original.expander]}
columns={extraColumns}
styleName="custom-expander-table"
/>
{row.original.enterpriseCourseEnrollments?.length > 0 && (
<>
<hr />
<div className="custom-expander-table">
<h4 className="my-3">Enterprise Course Enrollments {`(${row.original.enterpriseCourseEnrollments.length})`}</h4>
<Table
data={row.original.enterpriseCourseEnrollments}
columns={enterpriseCourseEnrollmentColumns}
/>
</div>
</>
)}
</>
),
[],
);
/* eslint-enable react/prop-types */
return (
<section className="mb-3">
<div className="row">
<h3 className="ml-4 mr-auto">Enrollments ({tableData.length})</h3>
<Button
id="create-enrollment-button"
type="button"
variant="outline-primary mr-4"
size="sm"
onClick={() => {
setEnrollmentToChange(undefined);
setFormType(CREATE);
}}
>
Create New Enrollment
</Button>
</div>
{enrollmentData
? (
<Table
columns={columns}
data={tableData}
renderRowSubComponent={renderRowSubComponent}
styleName={tableData.length === 1 ? 'custom-table mb-60' : 'custom-table'}
defaultSortColumn={defaultSortColumn}
/>
)
: <PageLoading srMessage="Loading" />}
<AlertList topic="enrollments" className="mb-3" />
<TransitionReplace>
{formType != null ? (
<EnrollmentForm
key="enrollment-form"
enrollment={enrollmentToChange}
formType={formType}
user={user}
submitHandler={() => {}}
changeHandler={changeHandler}
closeHandler={() => setFormType(null)}
forwardedRef={formRef}
/>
) : (<React.Fragment key="nothing" />) }
</TransitionReplace>
<TransitionReplace>
{selectedCourseId !== undefined ? (
<Certificates
key="certificates-data"
closeHandler={() => setSelectedCourseId(undefined)}
courseId={selectedCourseId}
username={user}
/>
) : (<React.Fragment key="nothing" />) }
</TransitionReplace>
</section>
);
}
Example #3
Source File: Entitlements.jsx From frontend-app-support-tools with GNU Affero General Public License v3.0 | 4 votes |
export default function Entitlements({
user,
searchStr,
}) {
const { add, clear } = useContext(UserMessagesContext);
const [formType, setFormType] = useState(null);
const [userEntitlement, setUserEntitlement] = useState(undefined);
const [courseSummaryUUID, setCourseSummaryUUID] = useState(null);
const [entitlementData, setEntitlementData] = useState(null);
const formRef = useRef(null);
const changeHandler = () => setEntitlementData(null);
useEffect(() => {
if (entitlementData === null) {
clear('entitlements');
getEntitlements(user).then((result) => {
const camelCaseResult = camelCaseObject(result);
if (camelCaseResult.errors) {
camelCaseResult.errors.forEach(error => add(error));
setEntitlementData({ results: [] });
} else {
setEntitlementData(camelCaseResult);
}
});
}
}, [user, entitlementData]);
const tableData = useMemo(() => {
if (entitlementData === null) {
return [];
}
return entitlementData.results.filter(
entitlement => (entitlement.courseUuid.toLowerCase().includes(searchStr)
|| (entitlement.enrollmentCourseRun && entitlement.enrollmentCourseRun.toLowerCase().includes(searchStr))),
).map(entitlement => ({
expander: entitlement.supportDetails.map(supportDetail => ({
action: supportDetail.action,
comments: supportDetail.comments,
actionCreated: supportDetail.created,
supportUser: supportDetail.supportUser,
unenrolledRun: supportDetail.unenrolledRun,
})),
courseUuid: entitlement.courseUuid,
courseSummary: (
<Hyperlink
destination=""
target="_blank"
onClick={(event) => {
event.preventDefault();
setFormType(null);
setUserEntitlement(undefined);
setCourseSummaryUUID(entitlement.courseUuid);
}}
>
See Details
</Hyperlink>
),
enrollmentCourseRun: (entitlement.enrollmentCourseRun ? (
<a
href={`${getConfig().LMS_BASE_URL}/courses/${entitlement.enrollmentCourseRun}`}
rel="noopener noreferrer"
target="_blank"
>
{entitlement.enrollmentCourseRun}
</a>
) : 'Course Run Not Selected'),
expiredAt: entitlement.expiredAt,
created: entitlement.created,
modified: entitlement.modified,
orderNumber: (
<a
href={`${getConfig().ECOMMERCE_BASE_URL}/dashboard/orders/${entitlement.orderNumber}/`}
rel="noopener noreferrer"
target="_blank"
>
{entitlement.orderNumber}
</a>
),
mode: entitlement.mode,
actions: (
<Dropdown>
<Dropdown.Toggle variant="sm">
Actions
</Dropdown.Toggle>
<Dropdown.Menu>
<Dropdown.Item
onClick={() => {
setCourseSummaryUUID(null);
setUserEntitlement(entitlement);
setFormType(REISSUE);
}}
// disable if entitlement has no associated course run
disabled={Boolean(!entitlement.enrollmentCourseRun)}
className="small"
>
Reissue
</Dropdown.Item>
<Dropdown.Item
onClick={() => {
setCourseSummaryUUID(null);
setUserEntitlement(entitlement);
setFormType(EXPIRE);
}}
disabled={Boolean(entitlement.expiredAt)}
className="small"
>
Expire
</Dropdown.Item>
</Dropdown.Menu>
</Dropdown>
),
}));
}, [entitlementData, searchStr]);
useLayoutEffect(() => {
if (formType != null) {
formRef.current.focus();
}
});
const expandAllRowsHandler = ({ getToggleAllRowsExpandedProps, isAllRowsExpanded }) => (
<a {...getToggleAllRowsExpandedProps()} className="link-primary">
{ isAllRowsExpanded ? 'Collapse All' : 'Expand All' }
</a>
);
expandAllRowsHandler.propTypes = {
getToggleAllRowsExpandedProps: PropTypes.func.isRequired,
isAllRowsExpanded: PropTypes.bool.isRequired,
};
const rowExpandHandler = ({ row }) => (
// We can use the getToggleRowExpandedProps prop-getter
// to build the expander.
<div className="text-center">
<span {...row.getToggleRowExpandedProps()}>
{row.isExpanded ? (
<FontAwesomeIcon icon={faMinus} />
) : <FontAwesomeIcon icon={faPlus} />}
</span>
</div>
);
rowExpandHandler.propTypes = {
row: PropTypes.shape({
isExpanded: PropTypes.bool,
getToggleRowExpandedProps: PropTypes.func,
}).isRequired,
};
const columns = React.useMemo(
() => [
{
// Make an expander column
Header: expandAllRowsHandler,
id: 'expander',
Cell: rowExpandHandler, // Use Cell to render an expander for each row.
},
{
Header: 'Course UUID', accessor: 'courseUuid', sortable: true,
},
{
Header: 'Course Run ID', accessor: 'enrollmentCourseRun', sortable: true,
},
{
Header: 'Course Summary', accessor: 'courseSummary',
},
{
Header: 'Expiration Date', accessor: 'expiredAt', Cell: ({ value }) => formatDate(value), sortable: true,
},
{
Header: 'Date Created', accessor: 'created', Cell: ({ value }) => formatDate(value), sortable: true,
},
{
Header: 'Date Modified', accessor: 'modified', Cell: ({ value }) => formatDate(value), sortable: true,
},
{
Header: 'Order', accessor: 'orderNumber', sortable: true,
},
{
Header: 'Mode', accessor: 'mode', sortable: true,
},
{
Header: 'Actions', accessor: 'actions',
},
],
[],
);
const supportDetailsColumn = React.useMemo(
() => [
{
Header: 'Action', accessor: 'action', sortable: true,
},
{
Header: 'Comments', accessor: 'comments', sortable: true,
},
{
Header: 'Action Creation Timestamp', accessor: 'actionCreated', Cell: ({ value }) => formatDate(value), sortable: true,
},
{
Header: 'Support User', accessor: 'supportUser', sortable: true,
},
{
Header: 'Unenrolled Run', accessor: 'unenrolledRun', sortable: true,
},
],
[],
);
const renderRowSubComponent = useCallback(
({ row }) => (
<Table
// eslint-disable-next-line react/prop-types
data={row.original.expander}
columns={supportDetailsColumn}
styleName="custom-expander-table"
/>
),
[],
);
return (
<section className="mb-3">
<div className="row">
<h3 className="ml-4 mr-auto">Entitlements ({tableData.length})</h3>
<Button
id="create-enrollment-button"
type="button"
variant="outline-primary mr-4"
size="sm"
onClick={() => {
setCourseSummaryUUID(null);
setUserEntitlement(undefined);
setFormType(CREATE);
}}
>
Create New Entitlement
</Button>
</div>
{!entitlementData
? <PageLoading srMessage="Loading" />
: (
<Table
columns={columns}
data={tableData}
renderRowSubComponent={renderRowSubComponent}
styleName={tableData.length === 1 ? 'custom-table mb-60' : 'custom-table'}
/>
)}
<AlertList topic="entitlements" className="mb-3" />
<TransitionReplace>
{formType !== null ? (
<EntitlementForm
key="entitlement-form"
user={user}
entitlement={userEntitlement}
formType={formType}
changeHandler={changeHandler}
submitHandler={() => { }}
closeHandler={() => setFormType(null)}
forwardedRef={formRef}
/>
) : (<React.Fragment key="nothing" />)}
</TransitionReplace>
<TransitionReplace>
{courseSummaryUUID !== null ? (
<CourseSummary
courseUUID={courseSummaryUUID}
closeHandler={() => {
setCourseSummaryUUID(null);
}}
/>
) : (<React.Fragment key="nothing" />)}
</TransitionReplace>
</section>
);
}
Example #4
Source File: DemoDashboard.jsx From react-lte with MIT License | 4 votes |
export default function DemoDashboard() {
return (
<>
<LteContentHeader title='Dashboard' />
<LteContent>
<Row>
<Col xs='12' sm='6' md='3'>
<LteInfoBox icon={faCog} text='CPU Traffic' number='10%' iconColor='info' />
</Col>
<Col xs='12' sm='6' md='3'>
<LteInfoBox icon={faThumbsUp} text='Likes' number='41,410' iconColor='danger' />
</Col>
<div className='clearfix hidden-md-up' />
<Col xs='12' sm='6' md='3'>
<LteInfoBox icon={faShoppingCart} text='Sales' number='760' iconColor='success' />
</Col>
<Col xs='12' sm='6' md='3'>
<LteInfoBox icon={faUsers} text='New Members' number='2,000' iconColor='warning' />
</Col>
</Row>
<Row>
<Col lg='3' xs='6'>
<LteSmallBox title='150' message='New Orders' href='/info' icon={faShoppingBasket} color='info' />
</Col>
<Col lg='3' xs='6'>
<LteSmallBox title='53%' message='Bounce Rate' href='/info' icon={faChartBar} color='success' />
</Col>
<Col lg='3' xs='6'>
<LteSmallBox title='44' message='User Registrations' href='/info' icon={faUserPlus} color='warning' />
</Col>
<Col lg='3' xs='6'>
<LteSmallBox title='65' message='Unique Visitors' href='/info' icon={faChartPie} color='danger' />
</Col>
</Row>
<Row>
<Col lg='8'>
<Card>
<CardHeader className='border-transparent'>
<CardTitle>Latest Orders</CardTitle>
<LteCardTools>
<Button color='' className='btn-tool' data-card-widget='collapse'>
<FontAwesomeIcon icon={faMinus} />
</Button>
<Button color='' className='btn-tool' data-card-widget='remove'>
<FontAwesomeIcon icon={faTimes} />
</Button>
</LteCardTools>
</CardHeader>
<CardBody className='p-0'>
<Table responsive>
<thead>
<tr>
<th>Order ID</th>
<th>Item</th>
<th>Status</th>
<th>Popularity</th>
</tr>
</thead>
<tbody>
<tr>
<td>OR9842</td>
<td>Call of Duty IV</td>
<td>
<Badge tag='span' color='success'>
Shipped
</Badge>
</td>
<td>
<div className='sparkbar' data-color='#00a65a' data-height='20'>
90,80,90,-70,61,-83,63
</div>
</td>
</tr>
<tr>
<td>OR1848</td>
<td>Samsung Smart TV</td>
<td>
<Badge tag='span' color='warning'>
Pending
</Badge>
</td>
<td>
<div className='sparkbar' data-color='#f39c12' data-height='20'>
90,80,-90,70,61,-83,68
</div>
</td>
</tr>
<tr>
<td>OR7429</td>
<td>iPhone 6 Plus</td>
<td>
<Badge tag='span' color='danger'>
Delivered
</Badge>
</td>
<td>
<div className='sparkbar' data-color='#f56954' data-height='20'>
90,-80,90,70,-61,83,63
</div>
</td>
</tr>
<tr>
<td>OR7429</td>
<td>Samsung Smart TV</td>
<td>
<Badge tag='span' color='info'>
Processing
</Badge>
</td>
<td>
<div className='sparkbar' data-color='#00c0ef' data-height='20'>
90,80,-90,70,-61,83,63
</div>
</td>
</tr>
<tr>
<td>OR1848</td>
<td>Samsung Smart TV</td>
<td>
<Badge tag='span' color='warning'>
Pending
</Badge>
</td>
<td>
<div className='sparkbar' data-color='#f39c12' data-height='20'>
90,80,-90,70,61,-83,68
</div>
</td>
</tr>
<tr>
<td>OR7429</td>
<td>iPhone 6 Plus</td>
<td>
<Badge tag='span' color='danger'>
Delivered
</Badge>
</td>
<td>
<div className='sparkbar' data-color='#f56954' data-height='20'>
90,-80,90,70,-61,83,63
</div>
</td>
</tr>
<tr>
<td>OR9842</td>
<td>Call of Duty IV</td>
<td>
<Badge tag='span' color='success'>
Shipped
</Badge>
</td>
<td>
<div className='sparkbar' data-color='#00a65a' data-height='20'>
90,80,90,-70,61,-83,63
</div>
</td>
</tr>
</tbody>
</Table>
</CardBody>
</Card>
<Row>
<Col lg='6'>
<LteDirectChat color='warning'>
<CardHeader>
<CardTitle>Direct Chat</CardTitle>
<LteCardTools>
<Badge color='warning' data-toggle='tooltip' title='3 New Messages'>
3
</Badge>
<Button className='btn-tool' color='' data-card-widget='collapse'>
<FontAwesomeIcon icon={faMinus} />
</Button>
<Button
color=''
className='btn-tool'
data-toggle='tooltip'
title='Contacts'
data-widget='chat-pane-toggle'
>
<FontAwesomeIcon icon={faComments} />
</Button>
<Button color='' className='btn-tool' data-card-widget='remove'>
<FontAwesomeIcon icon={faTimes} />
</Button>
</LteCardTools>
</CardHeader>
<CardBody>
<LteDirectChatMessages>
<LteDirectChatMsg
name='Alexander Pierce'
date='23 Jan 2:00 pm'
image={user1}
message="Is this template really for free? That's unbelievable!"
/>
<LteDirectChatMsg
right
name='Sarah Bullock'
date='23 Jan 2:05 pm'
image={user3}
message='You better believe it!'
/>
<LteDirectChatMsg
name='Alexander Pierce'
date='23 Jan 5:37 pm'
image={user1}
message='Working with AdminLTE on a great new app! Wanna join?'
/>
<LteDirectChatMsg
right
name='Sarah Bullock'
date='23 Jan 6:10 pm'
image={user3}
message='I would love to.'
/>
</LteDirectChatMessages>
<LteDirectChatContacts>
<LteContactsList>
<LteContactsListItem
href='/contacts'
image={user1}
name='Count Dracula'
date='2/28/2015'
message='How have you been? I was...'
/>
<LteContactsListItem
href='/contacts'
image={user7}
name='Sarah Doe'
date='2/23/2015'
message='I will be waiting for...'
/>
<LteContactsListItem
href='/contacts'
image={user3}
name='Nadia Jolie'
date='2/20/2015'
message="I'll call you back at..."
/>
<LteContactsListItem
href='/contacts'
image={user5}
name='Nora S. Vans'
date='2/10/2015'
message='Where is your new...'
/>
<LteContactsListItem
href='/contacts'
image={user6}
name='John K.'
date='1/27/2015'
message='Can I take a look at...'
/>
<LteContactsListItem
href='/contacts'
image={user8}
name='Kenneth M.'
date='1/4/2015'
message='Never mind I found...'
/>
</LteContactsList>
</LteDirectChatContacts>
</CardBody>
<CardFooter>
<Form>
<InputGroup>
<Input placeholder='Type Message ...' />
<InputGroupAddon addonType='append'>
<Button color='warning'>Send</Button>
</InputGroupAddon>
</InputGroup>
</Form>
</CardFooter>
</LteDirectChat>
</Col>
<Col lg='6'>
<Card>
<CardHeader>
<CardTitle>Latest Members</CardTitle>
<LteCardTools>
<Badge color='danger'>8 New Members</Badge>
<Button className='btn-tool' color='' data-card-widget='collapse'>
<FontAwesomeIcon icon={faMinus} />
</Button>
<Button color='' className='btn-tool' data-card-widget='remove'>
<FontAwesomeIcon icon={faTimes} />
</Button>
</LteCardTools>
</CardHeader>
<CardBody className='p-0'>
<LteUsersList>
<LteUsersListItem image={user1} href='/users' name='Alexander Pierce' date='Today' />
<LteUsersListItem image={user8} href='/users' name='Norman' date='Yesterday' />
<LteUsersListItem image={user7} href='/users' name='Jane' date='12 Jan' />
<LteUsersListItem image={user6} href='/users' name='John' date='12 Jan' />
<LteUsersListItem image={user2} href='/users' name='Alexander' date='13 Jan' />
<LteUsersListItem image={user5} href='/users' name='Sarah' date='14 Jan' />
<LteUsersListItem image={user4} href='/users' name='Nora' date='15 Jan' />
<LteUsersListItem image={user3} href='/users' name='Nadia' date='15 Jan' />
</LteUsersList>
</CardBody>
</Card>
</Col>
</Row>
</Col>
<Col lg='4'>
<LteInfoBox icon={faTag} text='Inventory' number='5,200' bgColor='warning' />
<LteInfoBox icon={faHeart} text='Mentions' number='92,050' bgColor='success' />
<LteInfoBox icon={faCloudDownloadAlt} text='Downloads' number='114,381' bgColor='danger' />
<LteInfoBox icon={faComment} text='Direct Messages' number='163,921' bgColor='info' />
<Card>
<CardHeader className='border-0'>
<CardTitle>Online Store Overview</CardTitle>
<LteCardTools>
<Button className='btn-tool' color=''>
<FontAwesomeIcon icon={faDownload} />
</Button>
<Button color='' className='btn-tool'>
<FontAwesomeIcon icon={faBars} />
</Button>
</LteCardTools>
</CardHeader>
<CardBody>
<div className='d-flex justify-content-between align-items-center border-bottom mb-3'>
<p className='text-success text-xl'>
<FontAwesomeIcon icon={faRedo} />
</p>
<p className='d-flex flex-column text-right'>
<span className='font-weight-bold'>
<FontAwesomeIcon icon={faArrowUp} className='text-success' />
12%
</span>
<span className='text-muted'>CONVERSION RATE</span>
</p>
</div>
<div className='d-flex justify-content-between align-items-center border-bottom mb-3'>
<p className='text-warning text-xl'>
<FontAwesomeIcon icon={faShoppingCart} />
</p>
<p className='d-flex flex-column text-right'>
<span className='font-weight-bold'>
<FontAwesomeIcon icon={faArrowUp} className='text-warning' /> 0.8%
</span>
<span className='text-muted'>SALES RATE</span>
</p>
</div>
<div className='d-flex justify-content-between align-items-center mb-0'>
<p className='text-danger text-xl'>
<FontAwesomeIcon icon={faUsers} />
</p>
<p className='d-flex flex-column text-right'>
<span className='font-weight-bold'>
<FontAwesomeIcon icon={faArrowUp} className='text-danger' /> 1%
</span>
<span className='text-muted'>REGISTRATION RATE</span>
</p>
</div>
</CardBody>
</Card>
</Col>
</Row>
</LteContent>
</>
);
}