Skip to content

Commit 03cb902

Browse files
committed
added a feedback confirmation UI
1 parent 22ceb18 commit 03cb902

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import CrossIcon from '@atlaskit/icon/core/cross';
2+
import React from 'react';
3+
4+
export interface FeedbackConfirmationFormProps {
5+
onOk: () => void;
6+
}
7+
8+
export const FeedbackConfirmationForm: React.FC<FeedbackConfirmationFormProps> = ({ onOk: onClose }) => {
9+
return (
10+
<div className="form-container">
11+
<button
12+
type="button"
13+
onClick={() => onClose()}
14+
style={{
15+
background: 'none',
16+
border: 'none',
17+
cursor: 'pointer',
18+
padding: 0,
19+
marginLeft: 'auto',
20+
}}
21+
>
22+
<CrossIcon
23+
size="small"
24+
label="close the feedback confirmation form"
25+
color="var(--ds-icon-accent-gray)"
26+
/>
27+
</button>
28+
<b>Thanks</b>
29+
<br />
30+
<p>Your valuable feedback helps us continually improve our apps.</p>
31+
</div>
32+
);
33+
};

src/rovo-dev/ui/messaging/ChatStream.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { DetailedSiteInfo } from '../../api/extensionApiTypes';
77
import { CheckFileExistsFunc, FollowUpActionFooter, OpenFileFunc, OpenJiraFunc } from '../common/common';
88
import { DialogMessageItem } from '../common/DialogMessage';
99
import { PullRequestForm } from '../create-pr/PullRequestForm';
10+
import { FeedbackConfirmationForm } from '../feedback-form/FeedbackConfirmationForm';
1011
import { FeedbackForm, FeedbackType } from '../feedback-form/FeedbackForm';
1112
import { RovoDevLanding } from '../landing-page/RovoDevLanding';
1213
import { useMessagingApi } from '../messagingApi';
@@ -41,6 +42,8 @@ interface ChatStreamProps {
4142
onCollapsiblePanelExpanded: () => void;
4243
feedbackVisible: boolean;
4344
setFeedbackVisible: (visible: boolean) => void;
45+
feedbackConfirmationVisible: boolean;
46+
setFeedbackConfirmationVisible: (visible: boolean) => void;
4447
sendFeedback: (feedbackType: FeedbackType, feedack: string, canContact: boolean, lastTenMessages: boolean) => void;
4548
onLoginClick: (openApiTokenLogin: boolean) => void;
4649
onOpenFolder: () => void;
@@ -64,7 +67,9 @@ export const ChatStream: React.FC<ChatStreamProps> = ({
6467
onChangesGitPushed,
6568
onCollapsiblePanelExpanded,
6669
feedbackVisible = false,
70+
feedbackConfirmationVisible = false,
6771
setFeedbackVisible,
72+
setFeedbackConfirmationVisible,
6873
sendFeedback,
6974
onLoginClick,
7075
onOpenFolder,
@@ -337,13 +342,20 @@ export const ChatStream: React.FC<ChatStreamProps> = ({
337342
onSubmit={(feedbackType, feedback, canContact, includeTenMessages) => {
338343
setFeedbackType(undefined);
339344
sendFeedback(feedbackType, feedback, canContact, includeTenMessages);
345+
setFeedbackConfirmationVisible(true);
346+
setTimeout(() => {
347+
setFeedbackConfirmationVisible(false);
348+
}, 20000);
340349
}}
341350
onCancel={() => {
342351
setFeedbackType(undefined);
343352
setFeedbackVisible(false);
344353
}}
345354
/>
346355
)}
356+
{feedbackConfirmationVisible && (
357+
<FeedbackConfirmationForm onOk={() => setFeedbackConfirmationVisible(false)} />
358+
)}
347359
</FollowUpActionFooter>
348360
)}
349361
<div id="sentinel" ref={sentinelRef} style={{ height: '10px', width: '100%', pointerEvents: 'none' }} />

src/rovo-dev/ui/rovoDevView.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ const RovoDevView: React.FC = () => {
6060
const [history, setHistory] = useState<Response[]>([]);
6161
const [modalDialogs, setModalDialogs] = useState<DialogMessage[]>([]);
6262
const [isFeedbackFormVisible, setIsFeedbackFormVisible] = React.useState(false);
63+
const [isFeedbackConfirmationFormVisible, setIsFeedbackConfirmationFormVisible] = React.useState(false);
6364
const [outgoingMessage, dispatch] = useState<RovoDevViewResponse | undefined>(undefined);
6465
const [promptContextCollection, setPromptContextCollection] = useState<RovoDevContextItem[]>([]);
6566
const [debugPanelEnabled, setDebugPanelEnabled] = useState(false);
@@ -890,7 +891,9 @@ const RovoDevView: React.FC = () => {
890891
onChangesGitPushed={onChangesGitPushed}
891892
onCollapsiblePanelExpanded={onCollapsiblePanelExpanded}
892893
feedbackVisible={isFeedbackFormVisible}
894+
feedbackConfirmationVisible={isFeedbackConfirmationFormVisible}
893895
setFeedbackVisible={setIsFeedbackFormVisible}
896+
setFeedbackConfirmationVisible={setIsFeedbackConfirmationFormVisible}
894897
sendFeedback={executeSendFeedback}
895898
onLoginClick={onLoginClick}
896899
onOpenFolder={onOpenFolder}

0 commit comments

Comments
 (0)