import { c as _c } from "react/compiler-runtime"; import React from 'react'; import { type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, logEvent } from 'src/services/analytics/index.js'; import { Box, Text } from '../../ink.js'; import { FeedbackSurveyView, isValidResponseInput } from './FeedbackSurveyView.js'; import type { TranscriptShareResponse } from './TranscriptSharePrompt.js'; import { TranscriptSharePrompt } from './TranscriptSharePrompt.js'; import { useDebouncedDigitInput } from './useDebouncedDigitInput.js'; import type { FeedbackSurveyResponse } from './utils.js'; type Props = { state: 'closed' | 'open' | 'thanks' | 'transcript_prompt' | 'submitting' | 'submitted'; lastResponse: FeedbackSurveyResponse | null; handleSelect: (selected: FeedbackSurveyResponse) => void; handleTranscriptSelect?: (selected: TranscriptShareResponse) => void; inputValue: string; setInputValue: (value: string) => void; onRequestFeedback?: () => void; message?: string; }; export function FeedbackSurvey(t0) { const $ = _c(16); const { state, lastResponse, handleSelect, handleTranscriptSelect, inputValue, setInputValue, onRequestFeedback, message } = t0; if (state === "closed") { return null; } if (state === "thanks") { let t1; if ($[0] !== inputValue || $[1] !== lastResponse || $[2] !== onRequestFeedback || $[3] !== setInputValue) { t1 = ; $[0] = inputValue; $[1] = lastResponse; $[2] = onRequestFeedback; $[3] = setInputValue; $[4] = t1; } else { t1 = $[4]; } return t1; } if (state === "submitted") { let t1; if ($[5] === Symbol.for("react.memo_cache_sentinel")) { t1 = {"\u2713"} Thanks for sharing your transcript!; $[5] = t1; } else { t1 = $[5]; } return t1; } if (state === "submitting") { let t1; if ($[6] === Symbol.for("react.memo_cache_sentinel")) { t1 = Sharing transcript{"\u2026"}; $[6] = t1; } else { t1 = $[6]; } return t1; } if (state === "transcript_prompt") { if (!handleTranscriptSelect) { return null; } if (inputValue && !["1", "2", "3"].includes(inputValue)) { return null; } let t1; if ($[7] !== handleTranscriptSelect || $[8] !== inputValue || $[9] !== setInputValue) { t1 = ; $[7] = handleTranscriptSelect; $[8] = inputValue; $[9] = setInputValue; $[10] = t1; } else { t1 = $[10]; } return t1; } if (inputValue && !isValidResponseInput(inputValue)) { return null; } let t1; if ($[11] !== handleSelect || $[12] !== inputValue || $[13] !== message || $[14] !== setInputValue) { t1 = ; $[11] = handleSelect; $[12] = inputValue; $[13] = message; $[14] = setInputValue; $[15] = t1; } else { t1 = $[15]; } return t1; } type ThanksProps = { lastResponse: FeedbackSurveyResponse | null; inputValue: string; setInputValue: (value: string) => void; onRequestFeedback?: () => void; }; const isFollowUpDigit = (char: string): char is '1' => char === '1'; function FeedbackSurveyThanks(t0) { const $ = _c(12); const { lastResponse, inputValue, setInputValue, onRequestFeedback } = t0; const showFollowUp = onRequestFeedback && lastResponse === "good"; const t1 = Boolean(showFollowUp); let t2; if ($[0] !== lastResponse || $[1] !== onRequestFeedback) { t2 = () => { logEvent("tengu_feedback_survey_event", { event_type: "followup_accepted" as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, response: lastResponse as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS }); onRequestFeedback?.(); }; $[0] = lastResponse; $[1] = onRequestFeedback; $[2] = t2; } else { t2 = $[2]; } let t3; if ($[3] !== inputValue || $[4] !== setInputValue || $[5] !== t1 || $[6] !== t2) { t3 = { inputValue, setInputValue, isValidDigit: isFollowUpDigit, enabled: t1, once: true, onDigit: t2 }; $[3] = inputValue; $[4] = setInputValue; $[5] = t1; $[6] = t2; $[7] = t3; } else { t3 = $[7]; } useDebouncedDigitInput(t3); const feedbackCommand = false ? "/issue" : "/feedback"; let t4; if ($[8] === Symbol.for("react.memo_cache_sentinel")) { t4 = Thanks for the feedback!; $[8] = t4; } else { t4 = $[8]; } let t5; if ($[9] !== lastResponse || $[10] !== showFollowUp) { t5 = {t4}{showFollowUp ? (Optional) Press [1] to tell us what went well {" \xB7 "}{feedbackCommand} : lastResponse === "bad" ? Use /issue to report model behavior issues. : Use {feedbackCommand} to share detailed feedback anytime.}; $[9] = lastResponse; $[10] = showFollowUp; $[11] = t5; } else { t5 = $[11]; } return t5; }