diff options
author | Dessalines <tyhou13@gmx.com> | 2020-02-07 23:05:15 -0500 |
---|---|---|
committer | Dessalines <tyhou13@gmx.com> | 2020-02-07 23:05:15 -0500 |
commit | ecd10482a6815fc3b51b2da7cd5f494c01c385e6 (patch) | |
tree | 16d25467ba4224bfd807122806d1f77ddfaee6e8 /ui/src/components/data-type-select.tsx | |
parent | 779a72581c4c1dee846296cd0f3ea761914aedc6 (diff) |
Add new comments views to main and community pages. Fixes #480
Diffstat (limited to 'ui/src/components/data-type-select.tsx')
-rw-r--r-- | ui/src/components/data-type-select.tsx | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/ui/src/components/data-type-select.tsx b/ui/src/components/data-type-select.tsx new file mode 100644 index 00000000..f2539c81 --- /dev/null +++ b/ui/src/components/data-type-select.tsx @@ -0,0 +1,65 @@ +import { Component, linkEvent } from 'inferno'; +import { DataType } from '../interfaces'; + +import { i18n } from '../i18next'; + +interface DataTypeSelectProps { + type_: DataType; + onChange?(val: DataType): any; +} + +interface DataTypeSelectState { + type_: DataType; +} + +export class DataTypeSelect extends Component< + DataTypeSelectProps, + DataTypeSelectState +> { + private emptyState: DataTypeSelectState = { + type_: this.props.type_, + }; + + constructor(props: any, context: any) { + super(props, context); + this.state = this.emptyState; + } + + render() { + return ( + <div class="btn-group btn-group-toggle"> + <label + className={`pointer btn btn-sm btn-secondary + ${this.state.type_ == DataType.Post && 'active'} + `} + > + <input + type="radio" + value={DataType.Post} + checked={this.state.type_ == DataType.Post} + onChange={linkEvent(this, this.handleTypeChange)} + /> + {i18n.t('posts')} + </label> + <label + className={`pointer btn btn-sm btn-secondary ${this.state.type_ == + DataType.Comment && 'active'}`} + > + <input + type="radio" + value={DataType.Comment} + checked={this.state.type_ == DataType.Comment} + onChange={linkEvent(this, this.handleTypeChange)} + /> + {i18n.t('comments')} + </label> + </div> + ); + } + + handleTypeChange(i: DataTypeSelect, event: any) { + i.state.type_ = Number(event.target.value); + i.setState(i.state); + i.props.onChange(i.state.type_); + } +} |