152 lines
15 KiB
TypeScript
152 lines
15 KiB
TypeScript
import { c as _c } from "react/compiler-runtime";
|
|
import React, { useEffect, useRef } from 'react';
|
|
import { BLACK_CIRCLE, BULLET_OPERATOR } from '../constants/figures.js';
|
|
import { Box, Text } from '../ink.js';
|
|
import type { SkillUpdate } from '../utils/hooks/skillImprovement.js';
|
|
import { normalizeFullWidthDigits } from '../utils/stringUtils.js';
|
|
import { isValidResponseInput } from './FeedbackSurvey/FeedbackSurveyView.js';
|
|
import type { FeedbackSurveyResponse } from './FeedbackSurvey/utils.js';
|
|
type Props = {
|
|
isOpen: boolean;
|
|
skillName: string;
|
|
updates: SkillUpdate[];
|
|
handleSelect: (selected: FeedbackSurveyResponse) => void;
|
|
inputValue: string;
|
|
setInputValue: (value: string) => void;
|
|
};
|
|
export function SkillImprovementSurvey(t0) {
|
|
const $ = _c(6);
|
|
const {
|
|
isOpen,
|
|
skillName,
|
|
updates,
|
|
handleSelect,
|
|
inputValue,
|
|
setInputValue
|
|
} = t0;
|
|
if (!isOpen) {
|
|
return null;
|
|
}
|
|
if (inputValue && !isValidResponseInput(inputValue)) {
|
|
return null;
|
|
}
|
|
let t1;
|
|
if ($[0] !== handleSelect || $[1] !== inputValue || $[2] !== setInputValue || $[3] !== skillName || $[4] !== updates) {
|
|
t1 = <SkillImprovementSurveyView skillName={skillName} updates={updates} onSelect={handleSelect} inputValue={inputValue} setInputValue={setInputValue} />;
|
|
$[0] = handleSelect;
|
|
$[1] = inputValue;
|
|
$[2] = setInputValue;
|
|
$[3] = skillName;
|
|
$[4] = updates;
|
|
$[5] = t1;
|
|
} else {
|
|
t1 = $[5];
|
|
}
|
|
return t1;
|
|
}
|
|
type ViewProps = {
|
|
skillName: string;
|
|
updates: SkillUpdate[];
|
|
onSelect: (option: FeedbackSurveyResponse) => void;
|
|
inputValue: string;
|
|
setInputValue: (value: string) => void;
|
|
};
|
|
|
|
// Only 1 (apply) and 0 (dismiss) are valid for this survey
|
|
const VALID_INPUTS = ['0', '1'] as const;
|
|
function isValidInput(input: string): boolean {
|
|
return (VALID_INPUTS as readonly string[]).includes(input);
|
|
}
|
|
function SkillImprovementSurveyView(t0) {
|
|
const $ = _c(17);
|
|
const {
|
|
skillName,
|
|
updates,
|
|
onSelect,
|
|
inputValue,
|
|
setInputValue
|
|
} = t0;
|
|
const initialInputValue = useRef(inputValue);
|
|
let t1;
|
|
let t2;
|
|
if ($[0] !== inputValue || $[1] !== onSelect || $[2] !== setInputValue) {
|
|
t1 = () => {
|
|
if (inputValue !== initialInputValue.current) {
|
|
const lastChar = normalizeFullWidthDigits(inputValue.slice(-1));
|
|
if (isValidInput(lastChar)) {
|
|
setInputValue(inputValue.slice(0, -1));
|
|
onSelect(lastChar === "1" ? "good" : "dismissed");
|
|
}
|
|
}
|
|
};
|
|
t2 = [inputValue, onSelect, setInputValue];
|
|
$[0] = inputValue;
|
|
$[1] = onSelect;
|
|
$[2] = setInputValue;
|
|
$[3] = t1;
|
|
$[4] = t2;
|
|
} else {
|
|
t1 = $[3];
|
|
t2 = $[4];
|
|
}
|
|
useEffect(t1, t2);
|
|
let t3;
|
|
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
t3 = <Text color="ansi:cyan">{BLACK_CIRCLE} </Text>;
|
|
$[5] = t3;
|
|
} else {
|
|
t3 = $[5];
|
|
}
|
|
let t4;
|
|
if ($[6] !== skillName) {
|
|
t4 = <Box>{t3}<Text bold={true}>Skill improvement suggested for "{skillName}"</Text></Box>;
|
|
$[6] = skillName;
|
|
$[7] = t4;
|
|
} else {
|
|
t4 = $[7];
|
|
}
|
|
let t5;
|
|
if ($[8] !== updates) {
|
|
t5 = updates.map(_temp);
|
|
$[8] = updates;
|
|
$[9] = t5;
|
|
} else {
|
|
t5 = $[9];
|
|
}
|
|
let t6;
|
|
if ($[10] !== t5) {
|
|
t6 = <Box flexDirection="column" marginLeft={2}>{t5}</Box>;
|
|
$[10] = t5;
|
|
$[11] = t6;
|
|
} else {
|
|
t6 = $[11];
|
|
}
|
|
let t7;
|
|
if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
t7 = <Box width={12}><Text><Text color="ansi:cyan">1</Text>: Apply</Text></Box>;
|
|
$[12] = t7;
|
|
} else {
|
|
t7 = $[12];
|
|
}
|
|
let t8;
|
|
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
t8 = <Box marginLeft={2} marginTop={1}>{t7}<Box width={14}><Text><Text color="ansi:cyan">0</Text>: Dismiss</Text></Box></Box>;
|
|
$[13] = t8;
|
|
} else {
|
|
t8 = $[13];
|
|
}
|
|
let t9;
|
|
if ($[14] !== t4 || $[15] !== t6) {
|
|
t9 = <Box flexDirection="column" marginTop={1}>{t4}{t6}{t8}</Box>;
|
|
$[14] = t4;
|
|
$[15] = t6;
|
|
$[16] = t9;
|
|
} else {
|
|
t9 = $[16];
|
|
}
|
|
return t9;
|
|
}
|
|
function _temp(u, i) {
|
|
return <Text key={i} dimColor={true}>{BULLET_OPERATOR} {u.change}</Text>;
|
|
}
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkJMQUNLX0NJUkNMRSIsIkJVTExFVF9PUEVSQVRPUiIsIkJveCIsIlRleHQiLCJTa2lsbFVwZGF0ZSIsIm5vcm1hbGl6ZUZ1bGxXaWR0aERpZ2l0cyIsImlzVmFsaWRSZXNwb25zZUlucHV0IiwiRmVlZGJhY2tTdXJ2ZXlSZXNwb25zZSIsIlByb3BzIiwiaXNPcGVuIiwic2tpbGxOYW1lIiwidXBkYXRlcyIsImhhbmRsZVNlbGVjdCIsInNlbGVjdGVkIiwiaW5wdXRWYWx1ZSIsInNldElucHV0VmFsdWUiLCJ2YWx1ZSIsIlNraWxsSW1wcm92ZW1lbnRTdXJ2ZXkiLCJ0MCIsIiQiLCJfYyIsInQxIiwiVmlld1Byb3BzIiwib25TZWxlY3QiLCJvcHRpb24iLCJWQUxJRF9JTlBVVFMiLCJjb25zdCIsImlzVmFsaWRJbnB1dCIsImlucHV0IiwiaW5jbHVkZXMiLCJTa2lsbEltcHJvdmVtZW50U3VydmV5VmlldyIsImluaXRpYWxJbnB1dFZhbHVlIiwidDIiLCJjdXJyZW50IiwibGFzdENoYXIiLCJzbGljZSIsInQzIiwiU3ltYm9sIiwiZm9yIiwidDQiLCJ0NSIsIm1hcCIsIl90ZW1wIiwidDYiLCJ0NyIsInQ4IiwidDkiLCJ1IiwiaSIsImNoYW5nZSJdLCJzb3VyY2VzIjpbIlNraWxsSW1wcm92ZW1lbnRTdXJ2ZXkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQkxBQ0tfQ0lSQ0xFLCBCVUxMRVRfT1BFUkFUT1IgfSBmcm9tICcuLi9jb25zdGFudHMvZmlndXJlcy5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgU2tpbGxVcGRhdGUgfSBmcm9tICcuLi91dGlscy9ob29rcy9za2lsbEltcHJvdmVtZW50LmpzJ1xuaW1wb3J0IHsgbm9ybWFsaXplRnVsbFdpZHRoRGlnaXRzIH0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nVXRpbHMuanMnXG5pbXBvcnQgeyBpc1ZhbGlkUmVzcG9uc2VJbnB1dCB9IGZyb20gJy4vRmVlZGJhY2tTdXJ2ZXkvRmVlZGJhY2tTdXJ2ZXlWaWV3LmpzJ1xuaW1wb3J0IHR5cGUgeyBGZWVkYmFja1N1cnZleVJlc3BvbnNlIH0gZnJvbSAnLi9GZWVkYmFja1N1cnZleS91dGlscy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgaXNPcGVuOiBib29sZWFuXG4gIHNraWxsTmFtZTogc3RyaW5nXG4gIHVwZGF0ZXM6IFNraWxsVXBkYXRlW11cbiAgaGFuZGxlU2VsZWN0OiAoc2VsZWN0ZWQ6IEZlZWRiYWNrU3VydmV5UmVzcG9uc2UpID0+IHZvaWRcbiAgaW5wdXRWYWx1ZTogc3RyaW5nXG4gIHNldElucHV0VmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTa2lsbEltcHJvdmVtZW50U3VydmV5KHtcbiAgaXNPcGVuLFxuICBza2lsbE5hbWUsXG4gIHVwZGF0ZXMsXG4gIGhhbmRsZVNlbGVjdCxcbiAgaW5wdXRWYWx1ZSxcbiAgc2V0SW5wdXRWYWx1ZSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgaWYgKCFpc09wZW4pIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gSGlkZSB0aGUgc3VydmV5IGlmIHRoZSB1c2VyIGlzIHR5cGluZyBhbnl0aGluZyBvdGhlciB0aGFuIGEgc3VydmV5IHJlc3BvbnNlXG4gIGlmIChpbnB1dFZhbHVlICYmICFpc1ZhbGlkUmVzcG9uc2VJbnB1dChpbnB1dFZhbHVlKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTa2lsbEltcHJvdmVtZW50U3VydmV5Vmlld1xuICAgICAgc2tpbGxOYW1lPXtza2lsbE5hbWV9XG4gICAgICB1cGRhdGVzPXt1cGRhdGVzfVxuICAgICAgb25TZWxlY3Q9e2hhbmRsZVNlbGVjdH1cbiAgICAgIGlucHV0VmFsdWU9e2lucHV0VmFsdWV9XG4gICAgICBzZXRJbnB1dFZhbHVlPXtzZXRJbnB1dFZhbHVlfVxuICAgIC8+XG4gIClcbn1cblxudHlwZSBWaWV3UHJvcHMgPSB7XG4gIHNraWxsTmFtZTogc3RyaW5nXG4gIHVwZGF0ZXM6IFNraWxsVXBkYXRlW11cbiAgb25TZWxlY3Q6IChvcHRpb246IEZlZWRiYWNrU3VydmV5UmVzcG9uc2UpID0+IHZvaWRcbiAgaW5wdXRWYWx1ZTogc3RyaW5nXG4gIHNldElucHV0VmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkXG59XG5cbi8vIE9ubHkgMSAoYXBwbHkpIGFuZCAwIChkaXNtaXNzKSBhcmUgdmFsaWQgZm9yIHRoaXMgc3VydmV5XG5jb25zdCBWQUxJRF9JTlBVVFMgPSBbJzAnLCAnMSddIGFzIGNvbnN0XG5cbmZ1bmN0aW9uIGlzVmFsaWRJbnB1dChpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAoVkFMSURfSU5QVVRTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhpbnB1dClcbn1cblxuZnVuY3Rpb24gU2tpbGxJbXByb3ZlbWVudFN1cnZleVZpZXcoe1xuICBza2lsbE5hbWUsXG4gIHVwZGF0ZXMsXG4gIG9uU2VsZWN0LFxuICBpbnB1dFZhbHVlLFxuICBzZXRJbnB1dFZhbHVlLFxufTogVmlld1Byb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgaW5pdGlhbElucHV0VmFsdWUgPSB1c2VSZWYoaW5wdXRWYWx1ZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbnB1dFZhbHVlICE9PSBpbml0aWFsSW5wdXRWYWx1ZS5jdXJyZW50KSB7XG4gICAgICBjb25zdCBsYXN0Q2hhciA9IG5vcm1hbGl6ZUZ1bGxXaWR0aERpZ2l0cyhpbnB1dFZhbHVlLnNsaWNlKC0xKSlcbiAgICAgIGlmIChpc1ZhbGlkSW5wdXQobGFzdENoYXIpKSB7XG4gICAgICAgIHNldElucHV0VmFsdWUoaW5wdXRWYWx1ZS5zbGljZSgwLCAtMSkpXG4gICAgICAgIC8vIE1hcDogMSA9IFwiZ29vZFwiIChhcHBseSksIDAgPSBcImRpc21pc3NlZFwiXG4gICAgICAgIG9uU2VsZWN0KGxhc3RDaGFyID09PSAnMScgPyAnZ29vZCcgOiAnZGlzbWlzc2VkJylcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbnB1dFZhbHVlLCBvblNlbGVjdCwgc2V0SW5wdXRWYWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Ub3A9ezF9PlxuICAgICAgPEJveD5cbiAgICAgICAgPFRleHQgY29sb3I9XCJhbnNpOmN5YW5cIj57QkxBQ0tfQ0lSQ0xFfSA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGJvbGQ+XG4gICAgICAgICAgU2tpbGwgaW1wcm92ZW1lbnQgc3VnZ2VzdGVkIGZvciAmcXVvdDt7c2tpbGxOYW1lfSZxdW90O1xuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0JveD5cblxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgbWFyZ2luTGVmdD17Mn0+XG4gICAgICAgIHt1cGRhdGVzLm1hcCgodSwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0IGtleT17aX0gZGltQ29sb3I+XG4gICAgICAgICAgICB7QlVMTEVUX09QRVJBVE9SfSB7dS5jaGFuZ2V9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvQm94PlxuXG4gICAgICA8Qm94IG1hcmdpbkxlZnQ9ezJ9IG1hcmdpblRvcD17MX0+XG4gICAgICAgIDxCb3ggd2lkdGg9ezEyfT5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwiYW5zaTpjeWFuXCI+MTwvVGV4dD46IEFwcGx5XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgICAgPEJveCB3aWR0aD17MTR9PlxuICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgPFRleHQgY29sb3I9XCJhbnNpOmN5YW5cIj4wPC9UZXh0PjogRGlzbWlzc1xuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ2hELFNBQVNDLFlBQVksRUFBRUMsZUFBZSxRQUFRLHlCQUF5QjtBQUN2RSxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxXQUFXO0FBQ3JDLGNBQWNDLFdBQVcsUUFBUSxvQ0FBb0M7QUFDckUsU0FBU0Msd0JBQXdCLFFBQVEseUJBQXlCO0FBQ2xFLFNBQVNDLG9CQUFvQixRQUFRLHdDQUF3QztBQUM3RSxjQUFjQyxzQkFBc0IsUUFBUSwyQkFBMkI7QUFFdkUsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLE1BQU0sRUFBRSxPQUFPO0VBQ2ZDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxPQUFPLEVBQUVQLFdBQVcsRUFBRTtFQUN0QlEsWUFBWSxFQUFFLENBQUNDLFFBQVEsRUFBRU4sc0JBQXNCLEVBQUUsR0FBRyxJQUFJO0VBQ3hETyxVQUFVLEVBQUUsTUFBTTtFQUNsQkMsYUFBYSxFQUFFLENBQUNDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJO0FBQ3hDLENBQUM7QUFFRCxPQUFPLFNBQUFDLHVCQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQWdDO0lBQUFYLE1BQUE7SUFBQUMsU0FBQTtJQUFBQyxPQUFBO0lBQUFDLFlBQUE7SUFBQUUsVUFBQTtJQUFBQztFQUFBLElBQUFHLEVBTy9CO0VBQ04sSUFBSSxDQUFDVCxNQUFNO0lBQUEsT0FDRixJQUFJO0VBQUE7RUFJYixJQUFJSyxVQUErQyxJQUEvQyxDQUFlUixvQkFBb0IsQ0FBQ1EsVUFBVSxDQUFDO0lBQUEsT0FDMUMsSUFBSTtFQUFBO0VBQ1osSUFBQU8sRUFBQTtFQUFBLElBQUFGLENB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
|