@finos/legend-application-marketplace 0.1.74 → 0.1.75
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.
- package/lib/components/Feedback/FeedbackWidget.d.ts.map +1 -1
- package/lib/components/Feedback/FeedbackWidget.js +75 -13
- package/lib/components/Feedback/FeedbackWidget.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/pages/Lakehouse/searchResults/LegendMarketplaceSearchResults.d.ts.map +1 -1
- package/lib/pages/Lakehouse/searchResults/LegendMarketplaceSearchResults.js +10 -3
- package/lib/pages/Lakehouse/searchResults/LegendMarketplaceSearchResults.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Feedback/FeedbackWidget.tsx +215 -116
- package/src/pages/Lakehouse/searchResults/LegendMarketplaceSearchResults.tsx +11 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.d.ts","sourceRoot":"","sources":["../../../src/components/Feedback/FeedbackWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"FeedbackWidget.d.ts","sourceRoot":"","sources":["../../../src/components/Feedback/FeedbackWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqCH,eAAO,MAAM,cAAc;;CAyUzB,CAAC"}
|
|
@@ -16,7 +16,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
16
16
|
*/
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
18
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
19
|
-
import { IconButton } from '@mui/material';
|
|
19
|
+
import { IconButton, Popover } from '@mui/material';
|
|
20
20
|
import { ChatIcon, StarIcon, SendIcon, TimesIcon, CheckCircleIcon, clsx, } from '@finos/legend-art';
|
|
21
21
|
import { assertErrorThrown, LogEvent } from '@finos/legend-shared';
|
|
22
22
|
import { useLegendMarketplaceBaseStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
|
|
@@ -26,6 +26,7 @@ import { LEGEND_MARKETPLACE_LAKEHOUSE_SEARCH_RESULTS_QUERY_PARAM_TOKEN } from '.
|
|
|
26
26
|
const MAX_SUGGESTION_LENGTH = 1000;
|
|
27
27
|
const STAR_RATINGS = [1, 2, 3, 4, 5];
|
|
28
28
|
const AUTO_CLOSE_DELAY_MS = 5000;
|
|
29
|
+
const DRAG_THRESHOLD = 5;
|
|
29
30
|
var FeedbackWidgetState;
|
|
30
31
|
(function (FeedbackWidgetState) {
|
|
31
32
|
FeedbackWidgetState["IDLE"] = "IDLE";
|
|
@@ -41,23 +42,71 @@ export const FeedbackWidget = observer(() => {
|
|
|
41
42
|
const [hoveredRating, setHoveredRating] = useState(0);
|
|
42
43
|
const [suggestion, setSuggestion] = useState('');
|
|
43
44
|
const [submissionState, setSubmissionState] = useState(FeedbackWidgetState.IDLE);
|
|
44
|
-
const [isClosing, setIsClosing] = useState(false);
|
|
45
45
|
const autoCloseTimerRef = useRef(null);
|
|
46
|
+
const [position, setPosition] = useState(undefined);
|
|
47
|
+
const isDraggingRef = useRef(false);
|
|
48
|
+
const hasDraggedRef = useRef(false);
|
|
49
|
+
const dragStartRef = useRef({
|
|
50
|
+
mouseX: 0,
|
|
51
|
+
mouseY: 0,
|
|
52
|
+
});
|
|
53
|
+
const widgetRef = useRef(null);
|
|
54
|
+
const toggleRef = useRef(null);
|
|
46
55
|
const clearAutoCloseTimer = useCallback(() => {
|
|
47
56
|
if (autoCloseTimerRef.current) {
|
|
48
57
|
clearTimeout(autoCloseTimerRef.current);
|
|
49
58
|
autoCloseTimerRef.current = null;
|
|
50
59
|
}
|
|
51
60
|
}, []);
|
|
61
|
+
const handleMouseMove = useCallback((e) => {
|
|
62
|
+
if (!isDraggingRef.current) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const dx = e.clientX - dragStartRef.current.mouseX;
|
|
66
|
+
const dy = e.clientY - dragStartRef.current.mouseY;
|
|
67
|
+
if (!hasDraggedRef.current &&
|
|
68
|
+
Math.abs(dx) < DRAG_THRESHOLD &&
|
|
69
|
+
Math.abs(dy) < DRAG_THRESHOLD) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
hasDraggedRef.current = true;
|
|
73
|
+
const viewportWidth = window.innerWidth;
|
|
74
|
+
const viewportHeight = window.innerHeight;
|
|
75
|
+
const toggleSize = 52;
|
|
76
|
+
const newX = Math.min(Math.max(0, e.clientX - toggleSize / 2), viewportWidth - toggleSize);
|
|
77
|
+
const newY = Math.min(Math.max(0, e.clientY - toggleSize / 2), viewportHeight - toggleSize);
|
|
78
|
+
setPosition({ x: newX, y: newY });
|
|
79
|
+
}, []);
|
|
80
|
+
const handleMouseUp = useCallback(() => {
|
|
81
|
+
isDraggingRef.current = false;
|
|
82
|
+
document.removeEventListener('mousemove', handleMouseMove);
|
|
83
|
+
document.removeEventListener('mouseup', handleMouseUp);
|
|
84
|
+
}, [handleMouseMove]);
|
|
85
|
+
const handleMouseDown = useCallback((e) => {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
isDraggingRef.current = true;
|
|
88
|
+
hasDraggedRef.current = false;
|
|
89
|
+
dragStartRef.current = { mouseX: e.clientX, mouseY: e.clientY };
|
|
90
|
+
document.addEventListener('mousemove', handleMouseMove);
|
|
91
|
+
document.addEventListener('mouseup', handleMouseUp);
|
|
92
|
+
}, [handleMouseMove, handleMouseUp]);
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
return () => {
|
|
95
|
+
document.removeEventListener('mousemove', handleMouseMove);
|
|
96
|
+
document.removeEventListener('mouseup', handleMouseUp);
|
|
97
|
+
};
|
|
98
|
+
}, [handleMouseMove, handleMouseUp]);
|
|
52
99
|
const resetForm = useCallback(() => {
|
|
53
100
|
setRating(0);
|
|
54
101
|
setHoveredRating(0);
|
|
55
102
|
setSuggestion('');
|
|
56
103
|
setSubmissionState(FeedbackWidgetState.IDLE);
|
|
57
|
-
setIsClosing(false);
|
|
58
104
|
clearAutoCloseTimer();
|
|
59
105
|
}, [clearAutoCloseTimer]);
|
|
60
106
|
const handleToggle = useCallback(() => {
|
|
107
|
+
if (hasDraggedRef.current) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
61
110
|
if (isOpen) {
|
|
62
111
|
resetForm();
|
|
63
112
|
}
|
|
@@ -65,11 +114,8 @@ export const FeedbackWidget = observer(() => {
|
|
|
65
114
|
}, [isOpen, resetForm]);
|
|
66
115
|
const handleClose = useCallback(() => {
|
|
67
116
|
clearAutoCloseTimer();
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
resetForm();
|
|
71
|
-
setIsOpen(false);
|
|
72
|
-
}, 300);
|
|
117
|
+
resetForm();
|
|
118
|
+
setIsOpen(false);
|
|
73
119
|
}, [resetForm, clearAutoCloseTimer]);
|
|
74
120
|
useEffect(() => {
|
|
75
121
|
if (submissionState === FeedbackWidgetState.SUCCESS) {
|
|
@@ -113,9 +159,25 @@ export const FeedbackWidget = observer(() => {
|
|
|
113
159
|
}
|
|
114
160
|
}, [applicationStore, baseStore.marketplaceServerClient, rating, suggestion]);
|
|
115
161
|
const isSubmitDisabled = rating === 0 || submissionState === FeedbackWidgetState.SUBMITTING;
|
|
116
|
-
return (_jsxs("div", {
|
|
117
|
-
|
|
118
|
-
|
|
162
|
+
return (_jsxs("div", { ref: widgetRef, className: clsx('legend-marketplace-feedback-widget', {
|
|
163
|
+
'legend-marketplace-feedback-widget--dragged': position !== undefined,
|
|
164
|
+
}), style: position !== undefined
|
|
165
|
+
? { left: `${position.x}px`, top: `${position.y}px` }
|
|
166
|
+
: undefined, children: [_jsx(Popover, { open: isOpen, anchorEl: toggleRef.current, anchorOrigin: {
|
|
167
|
+
vertical: 'top',
|
|
168
|
+
horizontal: 'right',
|
|
169
|
+
}, transformOrigin: {
|
|
170
|
+
vertical: 'bottom',
|
|
171
|
+
horizontal: 'right',
|
|
172
|
+
}, onClose: handleClose, disableRestoreFocus: true, slotProps: {
|
|
173
|
+
paper: {
|
|
174
|
+
className: 'legend-marketplace-feedback-widget__popup',
|
|
175
|
+
},
|
|
176
|
+
}, sx: {
|
|
177
|
+
'& .MuiPopover-paper': {
|
|
178
|
+
overflow: 'hidden',
|
|
179
|
+
},
|
|
180
|
+
}, children: submissionState === FeedbackWidgetState.SUCCESS ? (_jsxs("div", { className: "legend-marketplace-feedback-widget__success", children: [_jsx("div", { className: "legend-marketplace-feedback-widget__success-progress", children: _jsx("div", { className: "legend-marketplace-feedback-widget__success-progress-bar" }) }), _jsx(CheckCircleIcon, { className: "legend-marketplace-feedback-widget__success-icon" }), _jsx("h3", { className: "legend-marketplace-feedback-widget__success-title", children: "Thank you!" }), _jsx("p", { className: "legend-marketplace-feedback-widget__success-message", children: "Your feedback has been submitted successfully." })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "legend-marketplace-feedback-widget__header", children: [_jsx("h3", { className: "legend-marketplace-feedback-widget__title", children: "Marketplace Feedback" }), _jsx(IconButton, { className: "legend-marketplace-feedback-widget__header-close", onClick: handleClose, size: "small", title: "Close feedback", children: _jsx(TimesIcon, {}) })] }), _jsxs("div", { className: "legend-marketplace-feedback-widget__body", children: [_jsxs("div", { className: "legend-marketplace-feedback-widget__rating-section", children: [_jsx("label", { className: "legend-marketplace-feedback-widget__label", children: "How would you rate your experience?" }), _jsx("div", { className: "legend-marketplace-feedback-widget__stars", children: STAR_RATINGS.map((star) => (_jsx("button", { className: clsx('legend-marketplace-feedback-widget__star', {
|
|
119
181
|
'legend-marketplace-feedback-widget__star--active': star <= (hoveredRating || rating),
|
|
120
182
|
}), onClick: () => setRating(star), onMouseEnter: () => setHoveredRating(star), onMouseLeave: () => setHoveredRating(0), children: _jsx(StarIcon, {}) }, star))) })] }), _jsxs("div", { className: "legend-marketplace-feedback-widget__text-section", children: [_jsx("label", { className: "legend-marketplace-feedback-widget__label", children: "Got ideas? We're all ears \uD83D\uDC42 (optional)" }), _jsx("textarea", { className: "legend-marketplace-feedback-widget__textarea", value: suggestion, onChange: (e) => {
|
|
121
183
|
if (e.target.value.length <= MAX_SUGGESTION_LENGTH) {
|
|
@@ -126,8 +188,8 @@ export const FeedbackWidget = observer(() => {
|
|
|
126
188
|
}), onClick: () => {
|
|
127
189
|
// eslint-disable-next-line no-void
|
|
128
190
|
void handleSubmit();
|
|
129
|
-
}, disabled: isSubmitDisabled, children: submissionState === FeedbackWidgetState.SUBMITTING ? ('Submitting...') : (_jsxs(_Fragment, { children: [_jsx(SendIcon, {}), "Submit"] })) }) })] })) })
|
|
191
|
+
}, disabled: isSubmitDisabled, children: submissionState === FeedbackWidgetState.SUBMITTING ? ('Submitting...') : (_jsxs(_Fragment, { children: [_jsx(SendIcon, {}), "Submit"] })) }) })] })) }), _jsx("button", { ref: toggleRef, className: clsx('legend-marketplace-feedback-widget__toggle', {
|
|
130
192
|
'legend-marketplace-feedback-widget__toggle--active': isOpen,
|
|
131
|
-
}), onClick: handleToggle, "aria-label": "Send feedback", children: isOpen ? _jsx(TimesIcon, {}) : _jsx(ChatIcon, {}) })] }));
|
|
193
|
+
}), onClick: handleToggle, onMouseDown: handleMouseDown, "aria-label": "Send feedback", children: isOpen ? _jsx(TimesIcon, {}) : _jsx(ChatIcon, {}) })] }));
|
|
132
194
|
});
|
|
133
195
|
//# sourceMappingURL=FeedbackWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.js","sourceRoot":"","sources":["../../../src/components/Feedback/FeedbackWidget.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"FeedbackWidget.js","sourceRoot":"","sources":["../../../src/components/Feedback/FeedbackWidget.tsx"],"names":[],"mappings":"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"}
|