Files
astuto/app/javascript/components/Post/PostStatusSelect.tsx

44 lines
1.0 KiB
TypeScript
Raw Normal View History

2019-09-12 15:51:45 +02:00
import * as React from 'react';
import I18n from 'i18n-js';
2019-09-12 15:51:45 +02:00
import IPostStatus from '../../interfaces/IPostStatus';
const NO_POST_STATUS_VALUE = 'none';
2019-09-12 15:51:45 +02:00
interface Props {
postStatuses: Array<IPostStatus>;
selectedPostStatusId: number;
handleChange(
newPostStatusId: number,
): void;
}
const PostStatusSelect = ({
postStatuses,
selectedPostStatusId,
handleChange,
}: Props) => (
2019-09-21 12:54:57 +02:00
<select
value={selectedPostStatusId || NO_POST_STATUS_VALUE}
2019-09-21 12:54:57 +02:00
onChange={
(e: React.FormEvent) => (
2019-09-21 12:54:57 +02:00
handleChange(parseInt((e.target as HTMLSelectElement).value))
)}
id="selectPickerStatus"
className="selectPicker"
>
<optgroup label="Post statuses">
2019-09-14 16:05:54 +02:00
{postStatuses.map((postStatus, i) => (
<option value={postStatus.id} key={i}>
{postStatus.name}
</option>
))}
2019-09-21 12:54:57 +02:00
</optgroup>
<optgroup label="No post status">
<option value={NO_POST_STATUS_VALUE}>{I18n.t('post.post_status_select.no_post_status')}</option>
2019-09-21 12:54:57 +02:00
</optgroup>
</select>
2019-09-12 15:51:45 +02:00
);
export default PostStatusSelect;