mirror of
https://github.com/muerwre/orchidmap-front.git
synced 2025-04-25 11:06:40 +07:00
stickers: text editing
This commit is contained in:
parent
fa9bff5756
commit
f183c8593d
6 changed files with 130 additions and 21 deletions
44
src/components/StickerDesc.jsx
Normal file
44
src/components/StickerDesc.jsx
Normal file
|
@ -0,0 +1,44 @@
|
|||
import React from 'react';
|
||||
|
||||
type State = {
|
||||
text: String,
|
||||
}
|
||||
|
||||
export class StickerDesc extends React.PureComponent<void, State> {
|
||||
state = {
|
||||
text: this.props.value,
|
||||
};
|
||||
|
||||
setText = e => {
|
||||
this.setState({ text: e.target.value });
|
||||
this.props.onChange(e.target.value);
|
||||
};
|
||||
|
||||
blockMouse = e => e.stopPropagation(); // todo: pass here locker for moving markers from Sticker.js
|
||||
|
||||
render() {
|
||||
const { text } = this.state;
|
||||
|
||||
return (
|
||||
<div
|
||||
className="sticker-desc"
|
||||
onMouseDown={this.blockMouse}
|
||||
onMouseUp={this.blockMouse}
|
||||
>
|
||||
<div className="sticker-desc-sizer">
|
||||
<span
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: (text.replace(/\n$/, '\n ').replace(/\n/g, '<br />') || ' ')
|
||||
}}
|
||||
/>
|
||||
<textarea
|
||||
onChange={this.setText}
|
||||
value={text}
|
||||
onMouseDown={this.blockMouse}
|
||||
onDragStart={this.blockMouse}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue