mirror of
https://github.com/pawelmalak/flame.git
synced 2026-03-06 12:33:12 +08:00
65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
import { Link } from 'react-router-dom';
|
|
|
|
import classes from './BookmarkGrid.module.css';
|
|
|
|
import { Category } from '../../../interfaces';
|
|
|
|
import { BookmarkCard } from '../BookmarkCard/BookmarkCard';
|
|
import { Message } from '../../UI';
|
|
|
|
interface Props {
|
|
categories: Category[];
|
|
totalCategories?: number;
|
|
searching: boolean;
|
|
fromHomepage?: boolean;
|
|
}
|
|
|
|
export const BookmarkGrid = (props: Props): JSX.Element => {
|
|
const {
|
|
categories,
|
|
totalCategories,
|
|
searching,
|
|
fromHomepage = false,
|
|
} = props;
|
|
|
|
let bookmarks: JSX.Element;
|
|
|
|
if (categories.length) {
|
|
if (searching && !categories[0].bookmarks.length) {
|
|
bookmarks = <Message>No bookmarks match your search criteria</Message>;
|
|
} else {
|
|
bookmarks = (
|
|
<div className={classes.BookmarkGrid}>
|
|
{categories.map(
|
|
(category: Category): JSX.Element => (
|
|
<BookmarkCard
|
|
category={category}
|
|
fromHomepage={fromHomepage}
|
|
key={category.id}
|
|
/>
|
|
)
|
|
)}
|
|
</div>
|
|
);
|
|
}
|
|
} else {
|
|
if (totalCategories) {
|
|
bookmarks = (
|
|
<Message>
|
|
There are no pinned categories. You can pin them from the{' '}
|
|
<Link to="/bookmarks">/bookmarks</Link> menu
|
|
</Message>
|
|
);
|
|
} else {
|
|
bookmarks = (
|
|
<Message>
|
|
You don't have any bookmarks. You can add a new one from{' '}
|
|
<Link to="/bookmarks">/bookmarks</Link> menu
|
|
</Message>
|
|
);
|
|
}
|
|
}
|
|
|
|
return bookmarks;
|
|
};
|