@topconsultnpm/sdkui-react 6.22.0-dev3.34 → 6.22.0-dev3.35

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.
@@ -256,7 +256,12 @@ const MessageFeedback = ({ answer, submittedRating, onSubmit }) => {
256
256
  const [feedback, setFeedback] = useState('');
257
257
  const [copied, setCopied] = useState(false);
258
258
  const copiedTimerRef = useRef();
259
+ const panelRef = useRef(null);
259
260
  useEffect(() => () => clearTimeout(copiedTimerRef.current), []);
261
+ useEffect(() => {
262
+ if (draftRating)
263
+ panelRef.current?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
264
+ }, [draftRating]);
260
265
  const isSubmitted = submittedRating !== undefined;
261
266
  const activeRating = submittedRating ?? draftRating;
262
267
  const canSubmit = draftRating === 'like' || selectedTags.length > 0 || feedback.trim().length > 0;
@@ -291,7 +296,7 @@ const MessageFeedback = ({ answer, submittedRating, onSubmit }) => {
291
296
  onSubmit(draftRating, selectedTags, feedback.trim());
292
297
  resetDraft();
293
298
  };
294
- return (_jsxs(FeedbackContainer, { children: [_jsxs(FeedbackActions, { children: [_jsx(TMTooltip, { content: "Mi piace", children: _jsx(FeedbackActionButton, { type: "button", $active: activeRating === 'like', $locked: isSubmitted, disabled: isSubmitted && submittedRating !== 'like', "aria-pressed": activeRating === 'like', "aria-label": "Mi piace", onClick: () => onRatingClick('like'), children: _jsx(IconThumbUp, { fontSize: 16 }) }) }), _jsx(TMTooltip, { content: "Non mi piace", children: _jsx(FeedbackActionButton, { type: "button", $active: activeRating === 'dislike', $locked: isSubmitted, disabled: isSubmitted && submittedRating !== 'dislike', "aria-pressed": activeRating === 'dislike', "aria-label": "Non mi piace", onClick: () => onRatingClick('dislike'), children: _jsx(IconThumbUp, { fontSize: 16, style: { transform: 'rotate(180deg)' } }) }) }), _jsx(TMTooltip, { content: copied ? 'Copiato' : 'Copia', children: _jsx(FeedbackActionButton, { type: "button", $active: false, $locked: false, $success: copied, "aria-label": "Copia", onClick: onCopyClick, children: copied ? _jsx(IconCheck, { fontSize: 16 }) : _jsx(IconCopy, { fontSize: 16 }) }) }), isSubmitted && (_jsxs(SentBadge, { role: "status", children: [_jsx(IconCheck, { fontSize: 12 }), "Inviato"] }))] }), !isSubmitted && draftRating && (_jsxs(FeedbackPanel, { children: [_jsxs(FeedbackPanelHeader, { children: [_jsx(FeedbackPanelTitle, { children: FEEDBACK_TITLES[draftRating] }), _jsx(FeedbackCloseButton, { type: "button", "aria-label": "Chiudi", title: "Chiudi", onClick: resetDraft, children: _jsx(IconClose, { fontSize: 16 }) })] }), _jsx(FeedbackLabel, { children: "Era..." }), _jsx(FeedbackTags, { children: FEEDBACK_TAGS[draftRating].map(tag => (_jsx(FeedbackTag, { type: "button", $selected: selectedTags.includes(tag), "aria-pressed": selectedTags.includes(tag), onClick: () => onTagClick(tag), children: tag }, tag))) }), _jsx(FeedbackLabel, { children: "Feedback aggiuntivo" }), _jsx(FeedbackTextarea, { value: feedback, maxLength: FEEDBACK_MAX_LENGTH, placeholder: "Raccontaci di pi\u00F9", onChange: (e) => setFeedback(e.target.value.slice(0, FEEDBACK_MAX_LENGTH)), onKeyDown: (e) => { if (e.key === 'Enter')
299
+ return (_jsxs(FeedbackContainer, { children: [_jsxs(FeedbackActions, { children: [_jsx(TMTooltip, { content: "Mi piace", children: _jsx(FeedbackActionButton, { type: "button", $active: activeRating === 'like', $locked: isSubmitted, disabled: isSubmitted && submittedRating !== 'like', "aria-pressed": activeRating === 'like', "aria-label": "Mi piace", onClick: () => onRatingClick('like'), children: _jsx(IconThumbUp, { fontSize: 16 }) }) }), _jsx(TMTooltip, { content: "Non mi piace", children: _jsx(FeedbackActionButton, { type: "button", $active: activeRating === 'dislike', $locked: isSubmitted, disabled: isSubmitted && submittedRating !== 'dislike', "aria-pressed": activeRating === 'dislike', "aria-label": "Non mi piace", onClick: () => onRatingClick('dislike'), children: _jsx(IconThumbUp, { fontSize: 16, style: { transform: 'rotate(180deg)' } }) }) }), _jsx(TMTooltip, { content: copied ? 'Copiato' : 'Copia', children: _jsx(FeedbackActionButton, { type: "button", $active: false, $locked: false, $success: copied, "aria-label": "Copia", onClick: onCopyClick, children: copied ? _jsx(IconCheck, { fontSize: 16 }) : _jsx(IconCopy, { fontSize: 16 }) }) }), isSubmitted && (_jsxs(SentBadge, { role: "status", children: [_jsx(IconCheck, { fontSize: 12 }), "Inviato"] }))] }), !isSubmitted && draftRating && (_jsxs(FeedbackPanel, { ref: panelRef, children: [_jsxs(FeedbackPanelHeader, { children: [_jsx(FeedbackPanelTitle, { children: FEEDBACK_TITLES[draftRating] }), _jsx(FeedbackCloseButton, { type: "button", "aria-label": "Chiudi", title: "Chiudi", onClick: resetDraft, children: _jsx(IconClose, { fontSize: 16 }) })] }), _jsx(FeedbackLabel, { children: "Era..." }), _jsx(FeedbackTags, { children: FEEDBACK_TAGS[draftRating].map(tag => (_jsx(FeedbackTag, { type: "button", $selected: selectedTags.includes(tag), "aria-pressed": selectedTags.includes(tag), onClick: () => onTagClick(tag), children: tag }, tag))) }), _jsx(FeedbackLabel, { children: "Feedback aggiuntivo" }), _jsx(FeedbackTextarea, { value: feedback, maxLength: FEEDBACK_MAX_LENGTH, placeholder: "Raccontaci di pi\u00F9", onChange: (e) => setFeedback(e.target.value.slice(0, FEEDBACK_MAX_LENGTH)), onKeyDown: (e) => { if (e.key === 'Enter')
295
300
  e.stopPropagation(); } }), _jsxs(FeedbackPanelFooter, { children: [_jsxs(FeedbackCounter, { $full: feedback.length >= FEEDBACK_MAX_LENGTH, children: [feedback.length, "/", FEEDBACK_MAX_LENGTH] }), _jsx(FeedbackSubmitButton, { type: "button", disabled: !canSubmit, onClick: onSubmitClick, children: "Invia" })] })] }, draftRating))] }));
296
301
  };
297
302
  //#endregion
@@ -894,6 +899,7 @@ const FeedbackPanel = styled.div `
894
899
  border-radius: 12px;
895
900
  background: white;
896
901
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
902
+ scroll-margin: 12px;
897
903
  animation: ${feedbackIn} 0.2s ease-out;
898
904
  `;
899
905
  const FeedbackPanelHeader = styled.div `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react",
3
- "version": "6.22.0-dev3.34",
3
+ "version": "6.22.0-dev3.35",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",