mirror of
https://github.com/flarum/core.git
synced 2025-07-17 06:41:21 +02:00
Add a first empty state to the discussion list
This commit is contained in:
@@ -2,6 +2,7 @@ import Component from 'flarum/Component';
|
|||||||
import DiscussionListItem from 'flarum/components/DiscussionListItem';
|
import DiscussionListItem from 'flarum/components/DiscussionListItem';
|
||||||
import Button from 'flarum/components/Button';
|
import Button from 'flarum/components/Button';
|
||||||
import LoadingIndicator from 'flarum/components/LoadingIndicator';
|
import LoadingIndicator from 'flarum/components/LoadingIndicator';
|
||||||
|
import Placeholder from 'flarum/components/Placeholder';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The `DiscussionList` component displays a list of discussions.
|
* The `DiscussionList` component displays a list of discussions.
|
||||||
@@ -53,6 +54,15 @@ export default class DiscussionList extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.discussions.length == 0) {
|
||||||
|
const text = 'Looks like there are no discussions here. Why don\'t you create a new one?';
|
||||||
|
return (
|
||||||
|
<div className="DiscussionList">
|
||||||
|
{Placeholder.component({text})}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="DiscussionList">
|
<div className="DiscussionList">
|
||||||
<ul className="DiscussionList-discussions">
|
<ul className="DiscussionList-discussions">
|
||||||
|
19
js/lib/components/Placeholder.js
Normal file
19
js/lib/components/Placeholder.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import Component from 'flarum/Component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `Placeholder` component displays a muted text with some call to action,
|
||||||
|
* usually used as an empty state.
|
||||||
|
*
|
||||||
|
* ### Props
|
||||||
|
*
|
||||||
|
* - `text`
|
||||||
|
*/
|
||||||
|
export default class Placeholder extends Component {
|
||||||
|
view() {
|
||||||
|
return (
|
||||||
|
<div className="Placeholder">
|
||||||
|
<p>{this.props.text}</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
9
less/lib/Placeholder.less
Normal file
9
less/lib/Placeholder.less
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
.Placeholder {
|
||||||
|
margin-top: 40px;
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 1.4em;
|
||||||
|
color: @muted-more-color;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
@@ -22,6 +22,7 @@
|
|||||||
@import "LoadingIndicator.less";
|
@import "LoadingIndicator.less";
|
||||||
@import "Modal.less";
|
@import "Modal.less";
|
||||||
@import "Navigation.less";
|
@import "Navigation.less";
|
||||||
|
@import "Placeholder.less";
|
||||||
@import "Search.less";
|
@import "Search.less";
|
||||||
@import "Select.less";
|
@import "Select.less";
|
||||||
@import "Tooltip.less";
|
@import "Tooltip.less";
|
||||||
|
Reference in New Issue
Block a user