2021-05-13 17:21:52 +02:00
|
|
|
import classes from './AppGrid.module.css';
|
2021-06-08 14:02:19 +02:00
|
|
|
import { Link } from 'react-router-dom';
|
2021-05-13 17:21:52 +02:00
|
|
|
import { App } from '../../../interfaces/App';
|
|
|
|
|
2021-11-09 14:33:51 +01:00
|
|
|
import { AppCard } from '../AppCard/AppCard';
|
2021-11-22 12:29:47 +01:00
|
|
|
import { Message } from '../../UI';
|
2021-05-13 17:21:52 +02:00
|
|
|
|
2021-11-09 14:33:51 +01:00
|
|
|
interface Props {
|
2021-05-13 17:21:52 +02:00
|
|
|
apps: App[];
|
2021-06-09 00:59:39 +02:00
|
|
|
totalApps?: number;
|
2021-09-06 12:24:01 +02:00
|
|
|
searching: boolean;
|
2021-05-13 17:21:52 +02:00
|
|
|
}
|
|
|
|
|
2021-11-09 14:33:51 +01:00
|
|
|
export const AppGrid = (props: Props): JSX.Element => {
|
2021-06-08 14:02:19 +02:00
|
|
|
let apps: JSX.Element;
|
|
|
|
|
2021-11-22 12:29:47 +01:00
|
|
|
if (props.searching || props.apps.length) {
|
|
|
|
if (!props.apps.length) {
|
|
|
|
apps = <Message>No apps match your search criteria</Message>;
|
|
|
|
} else {
|
|
|
|
apps = (
|
|
|
|
<div className={classes.AppGrid}>
|
|
|
|
{props.apps.map((app: App): JSX.Element => {
|
|
|
|
return <AppCard key={app.id} app={app} />;
|
|
|
|
})}
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
2021-06-08 14:02:19 +02:00
|
|
|
} else {
|
2021-06-09 00:59:39 +02:00
|
|
|
if (props.totalApps) {
|
2021-11-22 12:29:47 +01:00
|
|
|
apps = (
|
|
|
|
<Message>
|
|
|
|
There are no pinned applications. You can pin them from the{' '}
|
|
|
|
<Link to="/applications">/applications</Link> menu
|
|
|
|
</Message>
|
|
|
|
);
|
2021-06-09 00:59:39 +02:00
|
|
|
} else {
|
|
|
|
apps = (
|
2021-11-22 12:29:47 +01:00
|
|
|
<Message>
|
2021-09-06 12:24:01 +02:00
|
|
|
You don't have any applications. You can add a new one from{' '}
|
|
|
|
<Link to="/applications">/applications</Link> menu
|
2021-11-22 12:29:47 +01:00
|
|
|
</Message>
|
2021-06-09 00:59:39 +02:00
|
|
|
);
|
|
|
|
}
|
2021-06-08 14:02:19 +02:00
|
|
|
}
|
2021-05-13 17:21:52 +02:00
|
|
|
|
|
|
|
return apps;
|
2021-09-06 12:24:01 +02:00
|
|
|
};
|