рдХрдИ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрд╛рд░реНрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдб рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХрд╛ рд╕рд╛рдордЧреНрд░реА рдмреНрд▓реЙрдХ рд╣реИ рдФрд░ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИрдВ рдЬреЛ react-codemirror
ред рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбреНрд░реИрдЧ рдкреНрд░реАрд╡реНрдпреВ рдореЗрдВ рдПрдХ рдмрдбрд╝реА рд╕рдлреЗрдж рдкреГрд╖реНрдарднреВрдорд┐ рд╢рд╛рдорд┐рд▓ рдереА рдЬреЛ рдХреЛрдбрдорд┐рд░рд░ рдХреЗ рдХреЛрдб рдПрдбрд┐рдЯрд░ рдХреЗ рднреАрддрд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рдереАред рдпрд╣ рдЕрд╡рд╛рдВрдЫрдиреАрдп рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ рдерд╛, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрдврд╝рд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреАрдПрдирдбреА рдХрд┐рд╕реА рднреА рдирдП рд╡рд░реНрдЧ рдпрд╛ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЛрдо рдиреЛрдб рдХреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕рд╣реА рдХрд░реЗрдВ рдЕрдЧрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ)
рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдореИрдВрдиреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрд▓рдЧ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧ рд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╕рд┐рд╡рд╛рдп рдбреНрд░реИрдЧрд┐рдВрдЧ рдХреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрдбрд╝рдХрд╛ рд╣реБрдЖ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ рдХрд╛рдлреА рдЪрд┐рдХрдирд╛ рдерд╛ред
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрднреА-рдЕрднреА рдмрддрд╛рдИ рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://drive.google.com/file/d/0Bzbw-6Q_sVTySUNiNmJGcFVIQ00/view?usp=sharing
рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдХреЛрдб рднреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдпрд╣рд╛рдБ рдореЗрд░реА рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧ рд▓реЗрдпрд░ рд╣реИ
import React, { Component, PropTypes } from 'react'
import { DragLayer } from 'react-dnd'
function collect(monitor) {
return {
item: monitor.getItem(),
currentOffset: monitor.getSourceClientOffset(),
isDragging: monitor.isDragging()
}
}
const layerStyles = {
position: 'fixed',
pointerEvents: 'none',
zIndex: 100,
left: 0,
top: 0,
width: '20%',
height: '100%'
}
function getItemStyles(props) {
var currentOffset = props.currentOffset
if (!currentOffset) {
return {
display: 'none'
}
}
var x = currentOffset.x
var y = currentOffset.y
var transform = 'translate(' + x + 'px, ' + y + 'px)'
return {
transform: transform,
WebkitTransform: transform
}
}
class CardDragLayer extends Component {
static propTypes = {
item: PropTypes.object
}
render() {
const { item, isDragging } = this.props
if (!isDragging)
return false
return (
<div style={layerStyles}>
<div className='drag-preview' style={getItemStyles(this.props)}>
<i className='fa fa-hand-scissors-o fa-6'></i>
</div>
</div>
)
}
}
export default DragLayer(collect)(CardDragLayer)
рдбреНрд░реИрдЧ рд╕реЛрд░реНрд╕ рдФрд░ рдбреНрд░реЙрдк рдЯрд╛рд░рдЧреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ
export const cardSource = {
beginDrag(props) {
return {
index: props.index
}
}
}
export const cardTarget = {
hover(props, monitor, component) {
const dragIndex = monitor.getItem().index
const hoverIndex = props.index
if (dragIndex === hoverIndex)
return
props.swap(dragIndex, hoverIndex)
monitor.getItem().index = hoverIndex;
}
}
export function collectSource(connect, monitor) {
return {
connectDragSource: connect.dragSource(),
connectDragPreview: connect.dragPreview(),
isDragging: monitor.isDragging()
}
}
export function collectTarget(connect) {
return {
connectDropTarget: connect.dropTarget()
}
}
рдФрд░ рдпрд╣рд╛рдБ Card
рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
import React, { PropTypes, Component } from 'react'
import { Snippet, Markdown } from './Show'
import { DragSource, DropTarget } from 'react-dnd'
import { getEmptyImage } from 'react-dnd-html5-backend'
import { cardSource, cardTarget, collectSource, collectTarget } from './dragDropConfig'
import classnames from 'classnames'
class SnippetCard extends Component {
options() {
return {
readOnly: true,
scrollbarStyle: 'null',
viewportMargin: Infinity
}
}
render() {
const { language, text } = this.props
return(
<Snippet
options={this.options()}
language={language.value}
text={text.value} />
)
}
}
class MarkdownCard extends Component {
render() {
const { text } = this.props
return (
<div className='markdown-card'>
<div className='card-content'>
<Markdown text={text.value} />
</div>
</div>
)
}
}
const components = {
snippet: SnippetCard,
markdown: MarkdownCard
}
class Card extends Component {
static propTypes = {
connectDragSource: PropTypes.func.isRequired,
connectDropTarget: PropTypes.func.isRequired,
index: PropTypes.number.isRequired,
block: PropTypes.object.isRequired,
swap: PropTypes.func.isRequired
}
componentDidMount() {
const { connectDragPreview } = this.props
connectDragPreview(getEmptyImage(), {
captureDraggingState: true
})
}
render() {
const { isDragging, block, connectDragSource, connectDropTarget } = this.props
const Component = components[block.format.value]
const classes = classnames('card', {
dragging: isDragging
})
return connectDragSource(connectDropTarget((
<div className={classes}>
<div className='card-header'>
<div>
<label>
{block.format.value}
</label>
</div>
<Component {...block} />
</div>
</div>
)))
}
}
const Source = DragSource('card', cardSource, collectSource)(Card)
export default DropTarget('card', cardTarget, collectTarget)(Source)
рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рджреЗрдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╛ рддреЛ рдХ) рдореИрдВ рд╕рдлреЗрдж рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдмреА) рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЛ рдЕрдзрд┐рдХ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА!
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛/рд░реЗрдбрдХреНрд╕ рдХреЗ рд╕рд╛рде рдРрдкреНрд╕ рдмрдирд╛рдиреЗ рдкрд░ рдПрдХ рд╕реНрдХреНрд░реАрдирдХрд╛рд╕реНрдЯ рдХреЛрд░реНрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдкрд░ рд╢рд╛рдпрдж 2-3 рд▓рдШреБ рд╡реАрдбрд┐рдпреЛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рд╛рдордЧреНрд░реА рдмреНрд▓реЙрдХ рдХрд╛рд░реНрдб рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд░рд┐рд╣рд╛ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ!
рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧрд▓реЗрдпрд░ рдХреЗ рд╕рд╛рде рднреА рддрдбрд╝рдХрд╛ рджреЗрдЦрд╛ рд╣реИ (рд╕рд┐рд░реНрдл рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ): http://gaearon.github.io/react-dnd/examples-drag-round-custom-drag-layer.html
рдХреНрд░реЛрдо рдореЗрдВ рдпрд╣ рд╕рдм рдареАрдХ рд╣реИ рд▓реЗрдХрд┐рди рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдПрдиреАрдореЗрд╢рди рддрдбрд╝рдХрд╛ рд╣реБрдЖ рд╣реИред (рд▓рд┐рдирдХреНрд╕ рдЯрдХрд╕рд╛рд▓ рдкрд░, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 46.0.1)
рд╡реИрд╕реЗ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп!
@sslotsky рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛?
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЗрд╕рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдХреБрдЫ рднреА рдЪрддреБрд░ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдЬреЛ рд╣рдо рддрдбрд╝рдк рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рдмрддрд╛рдпрд╛ рд╣реИ рдХрд┐ рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧ рд▓реЗрдпрд░ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдирд╣реАрдВ, рдЕрднреА рднреА рдЗрд╕рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╣реИред рдЬрдм рдореИрдВ рдЕрдЧрд▓рд╛ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдКрдВ рддреЛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛!
рд╣рдо рдЗрд╕реЗ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ
@kesne рдмрд╕ рдЗрд╕реЗ рдЬреАрд╡рд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ :)
рд╣рд╛рдБ, рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рднреА рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рдореИрдВ рдбреНрд░реИрдЧрдЧреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕реБрдкрд░ рд╕рд░рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХред
рдореИрдВ рдЗрд╕ рдкрд░ рднреА рд▓рдЧрд╛рдКрдВрдЧрд╛ред рд╣рдо рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕рдореЗрдВ рднреА рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВ .. рд╕рд╛рдзрд╛рд░рдг рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдкреНрд╕ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдпрд╣ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реЛред рдХреНрдпрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдпрд╛ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛?
@ рдПрд▓реЗрдХреНрд╕реА-рдмреЗрд▓реМрд╕ рд╣рдордиреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЦрддреНрдо рдХрд░ рджрд┐рдпрд╛ рдФрд░ https://github.com/bevacqua/react-dragula рдХреЗ рд╕рд╛рде рдЧрдП
рдпрд╣рд╛рдВ рд╡рд╣реА рдореБрджреНрджрд╛ рд╣реИ, рдЖрдЧреЗ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдХрд┐ рдбреЛрдо рдиреЛрдб рдЦреАрдВрдЪрдиреЗ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗрд╡рд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдкрд╛рд░рджрд░реНрд╢реА рд╣реИред
рдореИрдВ рдЕрдкрдиреА getItemStyles(props) рд╡рд┐рдзрд┐ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ () рдХреЛ рд╣рдЯрд╛рдХрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдпрд╣ рдУрдкреА рдХреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреЛрдИ рдФрд░ рдпрд╣рд╛рдВ рдареЛрдХрд░ рдЦрд╛ рд░рд╣рд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдФрд░ рджреЗрд╡ рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЙрджрд╛рд╣рд░рдг рднреА рддрдбрд╝рдХрд╛ рд╣реБрдЖ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдореИрдВ рд╕рд╛рдЗрдЯ рдмрдирд╛рддрд╛ рд╣реВрдВ ( npm run build-site
рдЪрд▓рд╛рдХрд░) рд╕рд╛рдЗрдЯ рдирд┐рдпрдорд┐рдд рдорд╛рд░реНрдХрдЕрдк (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдмрд┐рдирд╛) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрдм рдбреНрд░реИрдЧ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЙрджрд╛рд╣рд░рдг рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рддреЛ рдореЗрд░реА рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ ReactDOM.renderToString(
рдпрд╣ рдЕрднреА рднреА рдПрдХ рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рд╣реИ... :(
@gaearon рд╣рдо рддреБрдорд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛рд░! рд╣рдореЗрдВ рдлрд╛рдВрд╕реА рдкрд░ рдордд рдЫреЛрдбрд╝реЛ! рд╣рдореЗрдВ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ :)
рдореБрдЭреЗ рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧ рд▓реЗрдпрд░ рдкрд░ рдЪреЙрдкреА рдПрдиреАрдореЗрд╢рди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереА рдФрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЕрддреНрдпрдВрдд рдЬрдЯрд┐рд▓ DOM рдЯреНрд░реА рдХреЗ рдХрд╛рд░рдг рдерд╛ред
рдореИрдВ рдРрд╕реЗ рдРрдк рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рдШрдЯрдХ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХреА рд╣рдЬрд╛рд░реЛрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐ рд╕реЗрд▓ 4 рдбреАрдУрдПрдо рддрддреНрд╡реЛрдВ рдХреА рддрд░рд╣ рдХреБрдЫ рдмрдирд╛рддрд╛ рд╣реИред рдЬрдм рддрд╛рд▓рд┐рдХрд╛ рдЦрд╛рд▓реА рдереА, рддреЛ рдбреНрд░реИрдЧ рд▓реЗрдпрд░ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдмрдврд╝рддреА рдЧрдИ, рдХрд╕реНрдЯрдо рдбреНрд░реИрдЧ рд▓реЗрдпрд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдзреАрдорд╛ рд╣реЛрддрд╛ рдЧрдпрд╛ред (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛ рдбреНрд░реИрдЧ рд╕реНрд░реЛрддреЛрдВ рдпрд╛ рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдмрджрд▓рд╛, рдЬрдмрдХрд┐ рдХреНрд░реЛрдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реЛ рдЧрдпрд╛ рдФрд░ рдбреАрдУрдПрдо рдкреЗрдбрд╝ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝ рдЧрдИред
рдореИрдВ рдХреНрд░реЛрдо рдореЗрдВ рдЯреЗрдмрд▓ рдХреЛ рдЙрд╕рдХреА рдЕрдкрдиреА рдХрдВрдкреЛрдЬрд┐рдЯрд┐рдВрдЧ рд▓реЗрдпрд░ рдореЗрдВ рдзрдХреЗрд▓ рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЗрд╕реЗ рдПрдХ рдЦрд╛рд▓реА 3D рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдХреЗ: transform: translate3d(0, 0, 0)
рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдбреЗрдореЛ рдкреЗрдЬ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рдереАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдХреНрдпрд╛ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдбреАрдУрдПрдо рдкреЗрдбрд╝ рдХреЗ рдЬрдЯрд┐рд▓ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдВрдкреЛрдЬрд┐рдЯрд┐рдВрдЧ рдкрд░рддреЛрдВ рдореЗрдВ рджрдмрд╛рдХрд░, рдЖрдк рдЕрдкрдиреА рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
@mgerring рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛? рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдРрдк рдкрд░ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рд╣рд╛рдБ, рд╣рдордиреЗ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдШрдЯрдХ рдХреЛ рд╣рдЯрд╛рдХрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ рдЗрд╕реЗ рдкрд╛рдпрд╛, рддреЛ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рддрдХ рдбреНрд░рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬреЛ рдордВрджреА рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд╕рдмрд╕реЗ рдмрд╛рд╣рд░реА рддрддреНрд╡ рдкрд░ рдЬреЛ style
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ style={{transform: translate3d(0, 0, 0)}}
рдореИрдВ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ #592 рдкрд░ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╣рд╛рдВ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ
@mgerring рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
@ рдПрд▓реЗрдХреНрд╕реА-рдмреЗрд▓реМрд╕ рд╣рдордиреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЦрддреНрдо рдХрд░ рджрд┐рдпрд╛ рдФрд░ https://github.com/bevacqua/react-dragula рдХреЗ рд╕рд╛рде рдЧрдП
+1
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдБ, рд╣рдордиреЗ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдШрдЯрдХ рдХреЛ рд╣рдЯрд╛рдХрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ рдЗрд╕реЗ рдкрд╛рдпрд╛, рддреЛ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рддрдХ рдбреНрд░рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬреЛ рдордВрджреА рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд╕рдмрд╕реЗ рдмрд╛рд╣рд░реА рддрддреНрд╡ рдкрд░ рдЬреЛ
style
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИstyle={{transform: translate3d(0, 0, 0)}}