1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-15 17:50:48 +02:00
unleash.unleash/frontend/src/component/feedback/FeedbackCES/FeedbackCESScore.tsx
olav dbb62631a6 feat: add FeedbackCES component (#826)
* refactor: add screen-reader-only util class

* refactor: move FeedbackNPS component

* feat: add FeedbackCES component

* refactor: improve hidden checkbox styles

* refactor: fix IFeedbackEndpointRequestBody source type

* refactor: remove unnecessary event.persist() calls

* refactor: remove disableEscapeKeyDown from FeedbackCES modal

* refactor: make textarea label customizable

* refactor: store feedback state on the backend

* refactor: add FeedbackCESForm snapshot test

* refactor: use extant IAuthFeedback type

* refactor: fix showNPSFeedback logic for multiple feedback types
2022-03-31 09:23:46 +02:00

41 lines
1.4 KiB
TypeScript

import React from 'react';
import produce from 'immer';
import { useStyles } from 'component/feedback/FeedbackCES/FeedbackCESScore.styles';
import { IFeedbackCESForm } from 'component/feedback/FeedbackCES/FeedbackCESForm';
interface IFeedbackCESScoreProps {
form: Partial<IFeedbackCESForm>;
setForm: React.Dispatch<React.SetStateAction<Partial<IFeedbackCESForm>>>;
}
export const FeedbackCESScore = ({ form, setForm }: IFeedbackCESScoreProps) => {
const styles = useStyles();
const onScoreChange = (event: React.ChangeEvent<HTMLInputElement>) => {
setForm(
produce(draft => {
draft.score = Number(event.target.value);
})
);
};
return (
<div className={styles.scoreInput}>
<span className={styles.scoreHelp}>Very difficult</span>
{[1, 2, 3, 4, 5, 6, 7].map(score => (
<label key={score} className={styles.scoreValue}>
<input
type="radio"
name="score"
value={score}
checked={form.score === score}
onChange={onScoreChange}
/>
<span>{score}</span>
</label>
))}
<span className={styles.scoreHelp}>Very easy</span>
</div>
);
};