@equinor/echo-framework 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export declare function useLongPress(onLongPress: (event: React.TouchEvent) => void, delay?: number): {
3
+ onTouchStart: (e: React.TouchEvent) => void;
4
+ onTouchMove: (e: React.TouchEvent) => void;
5
+ onTouchEnd: (e: React.TouchEvent) => void;
6
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -14,10 +14,16 @@ var React = require('react');
14
14
 
15
15
  var reactRouterDom = require('react-router-dom');
16
16
 
17
+ var useLongPress = require('../hooks/useLongPress.js');
18
+
17
19
  var plantChanged = require('../services/eventCallbacks/plantChanged.js');
18
20
 
21
+ var copyText = require('../utils/copyText.js');
22
+
19
23
  var eventHandlerUtils = require('../utils/eventHandlerUtils.js');
20
24
 
25
+ var EchoEventHandler_module = require('./EchoEventHandler.module.css.js');
26
+
21
27
  function _interopDefaultLegacy(e) {
22
28
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
23
29
  'default': e
@@ -35,6 +41,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
35
41
  var EchoEventHandler = function EchoEventHandler(_ref) {
36
42
  var children = _ref.children;
37
43
  var history = reactRouterDom.useHistory();
44
+ var touchEvents = useLongPress.useLongPress(copyText.copyText, 800);
38
45
  React.useEffect(function () {
39
46
  var unsubscribe = echoBase.eventHub.subscribe(EchoCore.EchoEvents.PlantChanged, function (plantEvent) {
40
47
  plantChanged.handlePlantChanged(plantEvent.selectedPlant, history, plantEvent.stayOnPath);
@@ -43,6 +50,12 @@ var EchoEventHandler = function EchoEventHandler(_ref) {
43
50
  unsubscribe();
44
51
  };
45
52
  });
53
+ React.useEffect(function () {
54
+ document.addEventListener('contextmenu', copyText.copyText);
55
+ return function () {
56
+ document.removeEventListener('contextmenu', copyText.copyText);
57
+ };
58
+ });
46
59
  React.useEffect(function () {
47
60
  if (!history) {
48
61
  console.error('No react history found!', history);
@@ -58,7 +71,9 @@ var EchoEventHandler = function EchoEventHandler(_ref) {
58
71
  unListen();
59
72
  };
60
73
  }, [history]);
61
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, children);
74
+ return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
75
+ className: EchoEventHandler_module["default"].echoEventContainer
76
+ }, touchEvents), children);
62
77
  };
63
78
 
64
79
  exports.EchoEventHandler = EchoEventHandler;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ });
6
+
7
+ var styleInject_es = require('../../node_modules/style-inject/dist/style-inject.es.js');
8
+
9
+ var css_248z = ".EchoEventHandler-module_echoEventContainer__zFKRh{height:100%}";
10
+ var style = {
11
+ "echoEventContainer": "EchoEventHandler-module_echoEventContainer__zFKRh"
12
+ };
13
+ styleInject_es["default"](css_248z);
14
+ exports["default"] = style;
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ });
6
+
7
+ var React = require('react'); // https://stackoverflow.com/questions/48048957/react-long-press-event
8
+
9
+
10
+ function useLongPress(onLongPress) {
11
+ var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
12
+ var timeout = React.useRef();
13
+
14
+ var start = function start(event) {
15
+ timeout.current = setTimeout(function () {
16
+ onLongPress(event);
17
+ }, delay);
18
+ };
19
+
20
+ var clear = function clear() {
21
+ timeout.current && clearTimeout(timeout.current);
22
+ };
23
+
24
+ return {
25
+ onTouchStart: function onTouchStart(e) {
26
+ return start(e);
27
+ },
28
+ onTouchMove: function onTouchMove() {
29
+ return clear();
30
+ },
31
+ onTouchEnd: function onTouchEnd() {
32
+ return clear();
33
+ }
34
+ };
35
+ }
36
+
37
+ exports.useLongPress = useLongPress;
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ });
6
+
7
+ var _tslib = require('../../_virtual/_tslib.js');
8
+
9
+ var toastActions = require('../services/eventHubActions/toastActions.js');
10
+
11
+ function copyText(event) {
12
+ return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
13
+ var target, text;
14
+ return regeneratorRuntime.wrap(function _callee$(_context) {
15
+ while (1) {
16
+ switch (_context.prev = _context.next) {
17
+ case 0:
18
+ target = event === null || event === void 0 ? void 0 : event.target;
19
+ text = target === null || target === void 0 ? void 0 : target.innerText;
20
+
21
+ if (!text) {
22
+ _context.next = 6;
23
+ break;
24
+ }
25
+
26
+ _context.next = 5;
27
+ return navigator.clipboard.writeText(text);
28
+
29
+ case 5:
30
+ toastActions.displayToast({
31
+ message: "Text copied to clipboard: ".concat(text)
32
+ });
33
+
34
+ case 6:
35
+ case "end":
36
+ return _context.stop();
37
+ }
38
+ }
39
+ }, _callee);
40
+ }));
41
+ }
42
+
43
+ exports.copyText = copyText;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function copyText(event: MouseEvent | React.TouchEvent): Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/echo-framework",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Modules and components for EchoWeb, utilizing EchoCore",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -65,6 +65,7 @@
65
65
  "@rollup/plugin-node-resolve": "^13.1.3",
66
66
  "@rollup/plugin-typescript": "^8.3.0",
67
67
  "@rollup/plugin-url": "^6.1.0",
68
+ "@testing-library/react-hooks": "^7.0.2",
68
69
  "@types/jest": "^27.4.0",
69
70
  "@types/node": "^17.0.12",
70
71
  "@types/react": "^17.0.38",
@@ -1 +0,0 @@
1
- export declare const renderHook: (hook: any) => any;