1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
import React from 'react'
import { generateTransform, unitsDimension, hexToRgb } from 'app/views/tile/tile.utils'
import Marquee from "react-fast-marquee"
export default function TileScript({ tile, box, bounds, videoBounds, viewing, onMouseDown, onDoubleClick, onMouseEnter }) {
// console.log(tile)
const style = {
transform: generateTransform(tile, box, bounds, videoBounds),
opacity: tile.settings.opacity,
}
// console.log(generateTransform(tile))
let className = ['tile', tile.type].join(' ')
if (tile.target_page_id || (viewing && tile.href)) {
if (viewing || tile.settings.cursor !== 'unclickable') {
className += ' ' + (tile.settings.cursor || 'hand_up')
}
}
if (!tile.settings.content) {
return null
}
let content = <span dangerouslySetInnerHTML={{ __html: tile.settings.content }} />
className += ' ' + tile.settings.align
style.width = unitsDimension(tile, 'width', bounds, videoBounds)
style.height = unitsDimension(tile, 'height', bounds, videoBounds)
style.fontFamily = tile.settings.font_family
style.fontSize = tile.settings.font_size + 'px'
style.lineHeight = 1.5
style.fontWeight = (tile.settings.font_style || "").indexOf('bold') !== -1 ? 'bold' : 'normal'
style.fontStyle = (tile.settings.font_style || "").indexOf('italic') !== -1 ? 'italic' : 'normal'
style.backgroundColor = tile.settings.background_color || 'transparent'
style.color = tile.settings.font_color || '#dddddd!important'
if (tile.settings.is_marquee) {
const gradientColor = hexToRgb(tile.settings.marquee_gradient_color)
style.width = "100vw"
style.height = style.fontSize + "px"
content = (
<Marquee
direction={tile.settings.marquee_direction || "left"}
speed={tile.settings.marquee_speed || 1}
gradient={!!tile.settings.marquee_gradient}
gradientColor={gradientColor ? [gradientColor.r, gradientColor.g, gradientColor.b] : [0,0,0]}
>
<div style={{
width: (tile.settings.marquee_content_width || 200) + "px",
height: (tile.settings.marquee_content_height || (parseInt(tile.settings.font_size) + 20)) + "px",
}}>
{content}
</div>
</Marquee>
)
}
return (
<div
className={className}
onMouseDown={onMouseDown}
onDoubleClick={onDoubleClick}
onMouseEnter={onMouseEnter}
style={style}
>
{content}
</div>
)
}
|