dnote/web/src/components/Home/NoteGroup/index.tsx
Sung Won Cho bdb75fd16c
Upgrade (#284)
* Add licenses

* Upgrade deps

* Update deprecated

* Upgrade deps
2019-10-28 18:36:24 -07:00

56 lines
1.7 KiB
TypeScript

/* Copyright (C) 2019 Monomax Software Pty Ltd
*
* This file is part of Dnote.
*
* Dnote is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Dnote 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Dnote. If not, see <https://www.gnu.org/licenses/>.
*/
import React from 'react';
import classnames from 'classnames';
import { NotesGroupData } from 'web/libs/notes';
import { Filters } from 'jslib/helpers/filters';
import NoteItem from './NoteItem';
import Header from './Header';
import styles from './NoteGroup.scss';
function renderItems(group: NotesGroupData, filters: Filters) {
return group.data.map(item => {
return <NoteItem key={item.uuid} note={item} filters={filters} />;
});
}
interface Props {
group: NotesGroupData;
isFirst: boolean;
filters: Filters;
}
const NoteGroup: React.FunctionComponent<Props> = ({ group, isFirst, filters }) => {
const { year, month } = group;
return (
<section
className={classnames(styles.wrapper, { [styles.first]: isFirst })}
>
<Header year={year} month={month} />
<ul className={classnames('list-unstyled', styles.list)}>
{renderItems(group, filters)}
</ul>
</section>
);
};
export default NoteGroup;