mirror of
https://github.com/muerwre/orchidmap-front.git
synced 2025-04-25 11:06:40 +07:00
81 lines
1.9 KiB
JavaScript
81 lines
1.9 KiB
JavaScript
// @flow
|
||
import React from 'react';
|
||
import { Icon } from '$components/panels/Icon';
|
||
import { Switch } from '$components/Switch';
|
||
|
||
type Props = {
|
||
title: string,
|
||
is_public: boolean,
|
||
distance: number,
|
||
_id: string,
|
||
};
|
||
|
||
type State = {
|
||
title: string,
|
||
is_public: boolean,
|
||
};
|
||
|
||
export class RouteRowEditor extends React.PureComponent<Props, State> {
|
||
constructor(props) {
|
||
super(props);
|
||
|
||
this.state = {
|
||
title: props.title,
|
||
is_public: props.is_public,
|
||
};
|
||
}
|
||
|
||
stopEditing = () => console.log();
|
||
setPublic = () => this.setState({ is_public: !this.state.is_public });
|
||
setTitle = ({ target: { value } }: { target: { value: string } }) => this.setState({ title: value });
|
||
|
||
render() {
|
||
const {
|
||
state: { title, is_public },
|
||
props: { distance, _id }
|
||
} = this;
|
||
|
||
return (
|
||
<div
|
||
className="route-row"
|
||
>
|
||
<div className="route-title">
|
||
<input
|
||
type="text"
|
||
value={title}
|
||
onChange={this.setTitle}
|
||
placeholder="Введите название"
|
||
autoFocus
|
||
/>
|
||
</div>
|
||
<div className="route-description">
|
||
<span>
|
||
<Icon icon="icon-link-1" />
|
||
{_id}
|
||
</span>
|
||
<span>
|
||
<Icon icon="icon-cycle-1" />
|
||
{(distance && `${distance} km`) || '0 km'}
|
||
</span>
|
||
</div>
|
||
<div className="route-row-editor">
|
||
<div className="route-row-buttons">
|
||
<div className="flex_1" onClick={this.setPublic}>
|
||
<Switch
|
||
active={is_public}
|
||
/>
|
||
{
|
||
is_public
|
||
? ' В каталоге карт'
|
||
: ' Только по ссылке'
|
||
}
|
||
</div>
|
||
<div className="button primary" onClick={this.stopEditing}>
|
||
OK
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
}
|