Skip to content

Commit 0acac1c

Browse files
committed
fix: convert ResultItem to class component
Remove useState hook from ResultItem.tsx to ensure Module Federation compatibility. Convert to class-based component with state management.
1 parent df48fc3 commit 0acac1c

File tree

3 files changed

+36
-20
lines changed

3 files changed

+36
-20
lines changed

dist/379.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/main.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/evaluation-view/components/ResultItem.tsx

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,40 @@ interface ResultItemProps {
88
onToggle: () => void;
99
}
1010

11-
export const ResultItem: React.FC<ResultItemProps> = ({ result, isExpanded, onToggle }) => {
12-
const [showContext, setShowContext] = React.useState(false);
11+
interface ResultItemState {
12+
showContext: boolean;
13+
}
14+
15+
export class ResultItem extends React.Component<ResultItemProps, ResultItemState> {
16+
constructor(props: ResultItemProps) {
17+
super(props);
18+
this.state = {
19+
showContext: false
20+
};
21+
}
22+
23+
handleToggleContext = (e: React.MouseEvent) => {
24+
e.stopPropagation();
25+
this.setState(prevState => ({ showContext: !prevState.showContext }));
26+
};
1327

14-
const borderColor = result.judge_correct
15-
? 'border-green-500'
16-
: 'border-red-500';
28+
render() {
29+
const { result, isExpanded, onToggle } = this.props;
30+
const { showContext } = this.state;
1731

18-
const iconColor = result.judge_correct
19-
? 'text-green-500'
20-
: 'text-red-500';
32+
const borderColor = result.judge_correct
33+
? 'border-green-500'
34+
: 'border-red-500';
2135

22-
const badgeClass = result.judge_correct
23-
? 'bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200'
24-
: 'bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200';
36+
const iconColor = result.judge_correct
37+
? 'text-green-500'
38+
: 'text-red-500';
2539

26-
return (
40+
const badgeClass = result.judge_correct
41+
? 'bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200'
42+
: 'bg-red-100 dark:bg-red-900 text-red-800 dark:text-red-200';
43+
44+
return (
2745
<div className={`border-l-4 ${borderColor}`}>
2846
<div
2947
className="px-4 py-4 sm:px-6 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer"
@@ -121,10 +139,7 @@ export const ResultItem: React.FC<ResultItemProps> = ({ result, isExpanded, onTo
121139
{/* Retrieved Context (Collapsible) */}
122140
<div>
123141
<button
124-
onClick={(e) => {
125-
e.stopPropagation();
126-
setShowContext(!showContext);
127-
}}
142+
onClick={this.handleToggleContext}
128143
className="text-sm font-medium text-blue-600 dark:text-blue-400 hover:underline flex items-center"
129144
>
130145
<FileText className="h-4 w-4 mr-1" />
@@ -150,5 +165,6 @@ export const ResultItem: React.FC<ResultItemProps> = ({ result, isExpanded, onTo
150165
</div>
151166
)}
152167
</div>
153-
);
154-
};
168+
);
169+
}
170+
}

0 commit comments

Comments
 (0)