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

42 lines
954 B
TypeScript
Raw Normal View History

2019-09-12 15:51:45 +02:00
import * as React from 'react';
import { FormEvent } from 'react';
import IPostStatus from '../../interfaces/IPostStatus';
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 || 'Loading...'}
onChange={
(e: FormEvent) => (
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">
2019-09-14 16:05:54 +02:00
<option value="none">None</option>
2019-09-21 12:54:57 +02:00
</optgroup>
</select>
2019-09-12 15:51:45 +02:00
);
export default PostStatusSelect;