This repository has been archived by the owner on Dec 8, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDummyGadget.tsx
59 lines (52 loc) · 1.92 KB
/
DummyGadget.tsx
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
import React, { useRef, useState } from "react";
import Draggable, { ControlPosition } from "react-draggable";
import { draggableGadget, GadgetProps } from "../lib/gadget";
import Switch from 'react-switch';
interface DummyGadgetSettings {
enabled: boolean;
offsets: ControlPosition;
}
export const DummyGadgetDefaults: DummyGadgetSettings = {
enabled: false,
offsets: {x: 100, y: 100},
}
const DummyGadget = (props: GadgetProps<DummyGadgetSettings>) => {
const dummyGadgetRef = useRef<HTMLDivElement>(null);
return (
<Draggable
nodeRef={dummyGadgetRef}
onStop={draggableGadget(dummyGadgetRef, props.setSettings)}
scale={1}
bounds="parent"
defaultPosition={props.settings.offsets}
>
<div className="Gadget DummyGadget" ref={dummyGadgetRef}>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin convallis malesuada mi in ullamcorper. Donec luctus tempus lorem vel fringilla. Nam laoreet nunc ac molestie consectetur. Quisque facilisis diam eros, pretium mollis ante luctus vel. Donec luctus tristique sem nec volutpat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque ut tristique mi. Proin eu tortor vitae velit congue tincidunt ac ut diam. Nulla sed dignissim arcu.</p>
</div>
</Draggable>
);
}
export const DummyGadgetSettingsNode = (props: GadgetProps<DummyGadgetSettings>) => {
const [gadgetToggle, setGadgetToggle] = useState(props.settings.enabled);
return (
<div className="SettingsNode">
<p>Enable Dummy Gadget</p>
<label>
<Switch
checked={gadgetToggle}
onChange={() => {
setGadgetToggle(cur => !cur);
props.setSettings(cur => ({
...cur,
enabled: !cur.enabled,
}))
}}
className="DummyGadgetSwitch"
height={25}
width={50}
/>
</label>
</div>
);
}
export default DummyGadget;