Skip to content

Commit e35179f

Browse files
committed
lint fixes
1 parent aa97f02 commit e35179f

File tree

10 files changed

+88
-95
lines changed

10 files changed

+88
-95
lines changed

src/apps/review/src/lib/components/Scorecard/ScorecardViewer/ScorecardGroup/ScorecardGroup.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,23 @@ import { IconOutline } from '~/libs/ui'
66
import { ScorecardGroup as ScorecardGroupModel } from '../../../../models'
77
import { ScorecardSection } from '../ScorecardSection'
88
import { ScorecardViewerContextValue, useScorecardContext } from '../ScorecardViewer.context'
9-
10-
import styles from './ScorecardGroup.module.scss'
119
import { ScorecardScore } from '../ScorecardScore'
1210
import { calcGroupScore } from '../utils'
1311

12+
import styles from './ScorecardGroup.module.scss'
13+
1414
interface ScorecardGroupProps {
1515
index: number
1616
group: ScorecardGroupModel
1717
}
1818

1919
const ScorecardGroup: FC<ScorecardGroupProps> = props => {
2020
const { aiFeedbackItems }: ScorecardViewerContextValue = useScorecardContext()
21-
const allFeedbackItems = aiFeedbackItems || [];
22-
const { toggleItem, toggledItems }: ScorecardViewerContextValue = useScorecardContext();
21+
const allFeedbackItems = aiFeedbackItems || []
22+
const { toggleItem, toggledItems }: ScorecardViewerContextValue = useScorecardContext()
2323

24-
const isVissible = !toggledItems[props.group.id];
25-
const toggle = useCallback(() => toggleItem(props.group.id), [props.group, toggleItem]);
24+
const isVissible = !toggledItems[props.group.id]
25+
const toggle = useCallback(() => toggleItem(props.group.id), [props.group, toggleItem])
2626

2727
const score = useMemo(() => (
2828
calcGroupScore(props.group, allFeedbackItems)
@@ -32,7 +32,8 @@ const ScorecardGroup: FC<ScorecardGroupProps> = props => {
3232
<div className={styles.wrap}>
3333
<div className={classNames(styles.headerBar, isVissible && styles.toggled)} onClick={toggle}>
3434
<span className={styles.index}>
35-
{props.index}.
35+
{props.index}
36+
.
3637
</span>
3738
<span>
3839
{props.group.name}
@@ -42,7 +43,6 @@ const ScorecardGroup: FC<ScorecardGroupProps> = props => {
4243
<ScorecardScore
4344
score={score}
4445
scaleMax={1}
45-
scaleType='SCALE'
4646
weight={props.group.weight}
4747
/>
4848
</span>
@@ -52,7 +52,7 @@ const ScorecardGroup: FC<ScorecardGroupProps> = props => {
5252
</div>
5353

5454
{isVissible && props.group.sections.map((section, index) => (
55-
<ScorecardSection key={section.id} section={section} index={[props.index, index+1].join('.')} />
55+
<ScorecardSection key={section.id} section={section} index={[props.index, index + 1].join('.')} />
5656
))}
5757
</div>
5858
)

src/apps/review/src/lib/components/Scorecard/ScorecardViewer/ScorecardQuestion/AiFeedback/AiFeedback.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,42 @@
11
import { FC, useMemo } from 'react'
22

3+
import { IconAiReview } from '~/apps/review/src/lib/assets/icons'
4+
import { ScorecardQuestion } from '~/apps/review/src/lib/models'
5+
36
import { ScorecardViewerContextValue, useScorecardContext } from '../../ScorecardViewer.context'
47
import { ScorecardQuestionRow } from '../ScorecardQuestionRow'
8+
import { ScorecardScore } from '../../ScorecardScore'
59

610
import styles from './AiFeedback.module.scss'
7-
import { IconAiReview } from '~/apps/review/src/lib/assets/icons'
8-
import { ScorecardQuestion } from '~/apps/review/src/lib/models'
9-
import { ScorecardScore } from '../../ScorecardScore'
1011

1112
interface AiFeedbackProps {
1213
question: ScorecardQuestion
1314
}
1415

1516
const AiFeedback: FC<AiFeedbackProps> = props => {
1617
const { aiFeedbackItems }: ScorecardViewerContextValue = useScorecardContext()
17-
const feedback = useMemo(() => aiFeedbackItems?.find(r => r.scorecardQuestionId === props.question.id), [props.question.id, aiFeedbackItems])
18+
const feedback = useMemo(() => (
19+
aiFeedbackItems?.find(r => r.scorecardQuestionId === props.question.id)
20+
), [props.question.id, aiFeedbackItems])
1821

1922
if (!aiFeedbackItems?.length || !feedback) {
2023
return <></>
2124
}
2225

23-
const isYesNo = props.question.type === 'YES_NO';
26+
const isYesNo = props.question.type === 'YES_NO'
2427

2528
return (
2629
<ScorecardQuestionRow
2730
icon={<IconAiReview />}
28-
index="AI Feedback"
31+
index='AI Feedback'
2932
className={styles.wrap}
30-
score={
33+
score={(
3134
<ScorecardScore
3235
score={feedback.questionScore}
3336
scaleMax={props.question.scaleMax}
34-
scaleType={props.question.type}
3537
weight={props.question.weight}
3638
/>
37-
}
39+
)}
3840
>
3941
{isYesNo && (
4042
<p>

src/apps/review/src/lib/components/Scorecard/ScorecardViewer/ScorecardQuestion/ScorecardQuestion.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
import { FC, useCallback } from 'react'
2+
import classNames from 'classnames'
23

34
import { IconOutline } from '~/libs/ui'
45

56
import { ScorecardQuestion as ScorecardQuestionModel } from '../../../../models'
7+
import { ScorecardViewerContextValue, useScorecardContext } from '../ScorecardViewer.context'
68

7-
import styles from './ScorecardQuestion.module.scss'
89
import { AiFeedback } from './AiFeedback'
910
import { ScorecardQuestionRow } from './ScorecardQuestionRow'
10-
import { ScorecardViewerContextValue, useScorecardContext } from '../ScorecardViewer.context'
11-
import classNames from 'classnames'
11+
import styles from './ScorecardQuestion.module.scss'
1212

1313
interface ScorecardQuestionProps {
1414
index: string
1515
question: ScorecardQuestionModel
1616
}
1717

1818
const ScorecardQuestion: FC<ScorecardQuestionProps> = props => {
19-
const { toggleItem, toggledItems }: ScorecardViewerContextValue = useScorecardContext();
19+
const { toggleItem, toggledItems }: ScorecardViewerContextValue = useScorecardContext()
2020

21-
const isToggled = toggledItems[props.question.id!];
22-
const toggle = useCallback(() => toggleItem(props.question.id!), [props.question, toggleItem]);
21+
const isToggled = toggledItems[props.question.id!]
22+
const toggle = useCallback(() => toggleItem(props.question.id!), [props.question, toggleItem])
2323

2424
return (
2525
<div className={styles.wrap}>
2626
<ScorecardQuestionRow
27-
icon={
27+
icon={(
2828
<IconOutline.ChevronDownIcon
2929
className={classNames(styles.toggleBtn, isToggled && styles.toggled)}
3030
onClick={toggle}
3131
/>
32-
}
32+
)}
3333
index={`Question ${props.index}`}
3434
className={styles.headerBar}
3535
score=''

src/apps/review/src/lib/components/Scorecard/ScorecardViewer/ScorecardQuestion/ScorecardQuestionRow/ScorecardQuestionRow.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import classNames from 'classnames'
21
import { FC, PropsWithChildren, ReactNode } from 'react'
2+
import classNames from 'classnames'
33

44
import styles from './ScorecardQuestionRow.module.scss'
55

src/apps/review/src/lib/components/Scorecard/ScorecardViewer/ScorecardScore/ScorecardScore.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
import { FC } from 'react'
22

33
import styles from './ScorecardScore.module.scss'
4-
import { ScorecardQuestion } from '../../../../models'
54

65
interface ScorecardScoreProps {
76
score: number
87
scaleMax: number
9-
scaleType: ScorecardQuestion['type']
108
weight: number
119
}
1210

13-
export const calcScore = (score: number, scaleMax: number, weight: number) => (
11+
export const calcScore = (score: number, scaleMax: number, weight: number): number => (
1412
(score / (scaleMax || 1)) * weight
1513
)
1614

src/apps/review/src/lib/components/Scorecard/ScorecardViewer/ScorecardSection/ScorecardSection.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interface ScorecardSectionProps {
1515

1616
const ScorecardSection: FC<ScorecardSectionProps> = props => {
1717
const { aiFeedbackItems }: ScorecardViewerContextValue = useScorecardContext()
18-
const allFeedbackItems = aiFeedbackItems || [];
18+
const allFeedbackItems = aiFeedbackItems || []
1919

2020
const score = useMemo(() => (
2121
calcSectionScore(props.section, allFeedbackItems)
@@ -25,7 +25,8 @@ const ScorecardSection: FC<ScorecardSectionProps> = props => {
2525
<div className={styles.wrap}>
2626
<div className={styles.headerBar}>
2727
<span>
28-
{props.index}.
28+
{props.index}
29+
.
2930
</span>
3031
<span>
3132
{props.section.name}
@@ -35,7 +36,6 @@ const ScorecardSection: FC<ScorecardSectionProps> = props => {
3536
<ScorecardScore
3637
score={score}
3738
scaleMax={1}
38-
scaleType='SCALE'
3939
weight={props.section.weight}
4040
/>
4141
</span>
@@ -44,7 +44,7 @@ const ScorecardSection: FC<ScorecardSectionProps> = props => {
4444
{props.section.questions.map((question, index) => (
4545
<ScorecardQuestion
4646
key={question.id}
47-
index={[props.index, index+1].join('.')}
47+
index={[props.index, index + 1].join('.')}
4848
question={question}
4949
/>
5050
))}
Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,23 @@
11
import { FC } from 'react'
22

3-
import styles from './ScorecardTotal.module.scss'
43
import { ScorecardScore } from '../ScorecardScore'
54

5+
import styles from './ScorecardTotal.module.scss'
6+
67
interface ScorecardTotalProps {
78
score?: number
89
}
910

10-
const ScorecardTotal: FC<ScorecardTotalProps> = props => {
11-
12-
13-
return (
14-
<div className={styles.wrap}>
15-
<strong>Total Score</strong>
16-
<span className={styles.mx} />
17-
<ScorecardScore
18-
score={props.score ?? 0}
19-
scaleMax={100}
20-
scaleType='SCALE'
21-
weight={100}
22-
/>
23-
</div>
24-
)
25-
}
11+
const ScorecardTotal: FC<ScorecardTotalProps> = props => (
12+
<div className={styles.wrap}>
13+
<strong>Total Score</strong>
14+
<span className={styles.mx} />
15+
<ScorecardScore
16+
score={props.score ?? 0}
17+
scaleMax={100}
18+
weight={100}
19+
/>
20+
</div>
21+
)
2622

2723
export default ScorecardTotal
Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { createContext, ReactNode, useCallback, useContext, useEffect, useState } from 'react';
2-
import { AiFeedbackItem, Scorecard } from '../../../models';
3-
import { isEmpty } from 'lodash';
1+
import { createContext, FC, ReactNode, useCallback, useContext, useEffect, useMemo, useState } from 'react'
2+
3+
import { AiFeedbackItem, Scorecard } from '../../../models'
44

55
export interface ScorecardViewerContextProps {
66
children: ReactNode;
@@ -14,39 +14,38 @@ export type ScorecardViewerContextValue = {
1414
toggleItem: (id: string) => void
1515
};
1616

17-
const ScorecardViewerContext = createContext({} as ScorecardViewerContextValue);
18-
17+
const ScorecardViewerContext = createContext({} as ScorecardViewerContextValue)
1918

20-
export function ScorecardViewerContextProvider({
21-
children,
22-
aiFeedbackItems,
23-
scorecard,
24-
...props
25-
}: ScorecardViewerContextProps) {
26-
const [toggledItems, setToggledItems] = useState<{[key: string]: boolean}>({});
19+
export const ScorecardViewerContextProvider: FC<ScorecardViewerContextProps> = props => {
20+
const [toggledItems, setToggledItems] = useState<{[key: string]: boolean}>({})
2721

2822
const toggleItem = useCallback((id: string, toggle?: boolean) => {
29-
setToggledItems((prevItems) => ({
23+
setToggledItems(prevItems => ({
3024
...prevItems,
3125
[id]: typeof toggle === 'boolean' ? toggle : !prevItems[id],
3226
}))
33-
}, []);
27+
}, [])
3428

3529
// reset toggle state on scorecard change
36-
useEffect(() => setToggledItems({}), [scorecard]);
30+
useEffect(() => setToggledItems({}), [props.scorecard])
31+
32+
const ctxValue = useMemo(() => ({
33+
aiFeedbackItems: props.aiFeedbackItems,
34+
toggledItems,
35+
toggleItem,
36+
}), [
37+
props.aiFeedbackItems,
38+
toggledItems,
39+
toggleItem,
40+
])
3741

3842
return (
3943
<ScorecardViewerContext.Provider
40-
value={{
41-
aiFeedbackItems,
42-
toggledItems,
43-
toggleItem,
44-
}}
45-
{...props}
44+
value={ctxValue}
4645
>
47-
{children}
46+
{props.children}
4847
</ScorecardViewerContext.Provider>
49-
);
50-
};
48+
)
49+
}
5150

52-
export const useScorecardContext = () => useContext(ScorecardViewerContext);
51+
export const useScorecardContext = (): ScorecardViewerContextValue => useContext(ScorecardViewerContext)
Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,30 @@
11
import { FC } from 'react'
22

3-
import styles from './ScorecardViewer.module.scss'
43
import { AiFeedbackItem, Scorecard } from '../../../models'
4+
55
import { ScorecardGroup } from './ScorecardGroup'
66
import { ScorecardViewerContextProvider } from './ScorecardViewer.context'
77
import { ScorecardTotal } from './ScorecardTotal'
8+
import styles from './ScorecardViewer.module.scss'
89

910
interface ScorecardViewerProps {
1011
scorecard: Scorecard
1112
aiFeedback?: AiFeedbackItem[]
1213
score?: number
1314
}
1415

15-
const ScorecardViewer: FC<ScorecardViewerProps> = props => {
16-
17-
return (
18-
<div className={styles.wrap}>
19-
<ScorecardViewerContextProvider
20-
scorecard={props.scorecard}
21-
aiFeedbackItems={props.aiFeedback}
22-
>
23-
{props.scorecard.scorecardGroups.map((group, index) => (
24-
<ScorecardGroup key={group.id} group={group} index={index+1} />
25-
))}
26-
<ScorecardTotal score={props.score} />
27-
</ScorecardViewerContextProvider>
28-
</div>
29-
)
30-
}
16+
const ScorecardViewer: FC<ScorecardViewerProps> = props => (
17+
<div className={styles.wrap}>
18+
<ScorecardViewerContextProvider
19+
scorecard={props.scorecard}
20+
aiFeedbackItems={props.aiFeedback}
21+
>
22+
{props.scorecard.scorecardGroups.map((group, index) => (
23+
<ScorecardGroup key={group.id} group={group} index={index + 1} />
24+
))}
25+
<ScorecardTotal score={props.score} />
26+
</ScorecardViewerContextProvider>
27+
</div>
28+
)
3129

3230
export default ScorecardViewer

src/apps/review/src/pages/ai-scorecards/AiScorecardViewer/AiScorecardViewer.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import { PageWrapper } from '../../../lib'
88
import { useAiScorecardContext } from '../AiScorecardContext'
99
import { AiScorecardContextModel } from '../../../lib/models'
1010
import { AiWorkflowsSidebar } from '../components/AiWorkflowsSidebar'
11-
12-
import styles from './AiScorecardViewer.module.scss'
1311
import { ScorecardViewer } from '../../../lib/components/Scorecard'
1412
import { AiWorkflowRunItemsResponse, useFetchAiWorkflowsRunItems } from '../../../lib/hooks'
1513

14+
import styles from './AiScorecardViewer.module.scss'
15+
1616
const AiScorecardViewer: FC = () => {
1717
const { showBannerNotification, removeNotification }: NotificationContextType = useNotification()
1818
const { challengeInfo, scorecard, workflowId, workflowRun }: AiScorecardContextModel = useAiScorecardContext()

0 commit comments

Comments
 (0)