Skip to content

Commit

Permalink
feat: Add reload button to update problem data
Browse files Browse the repository at this point in the history
  • Loading branch information
Elscrux committed Nov 25, 2024
1 parent 1a9cc65 commit 0d1a5d6
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 44 deletions.
2 changes: 1 addition & 1 deletion src/components/solvers/Graph/ProblemGraphView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ export const ProblemGraphView = (props: ProblemGraphViewProps) => {
addNode({
id: solverId,
data: {
problemTypeId: node.data.problemDtos[0].typeId,
problemIds: node.data.problemDtos.map((x) => x.id),
problemSolver: solvers[i],
selectCallback: (problemSolver: ProblemSolverInfo) => {
let edge = edges.find((e) =>
Expand Down
2 changes: 1 addition & 1 deletion src/components/solvers/Graph/ProblemNode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ export function ProblemNode(props: NodeProps<ProblemNodeData>) {
marginTop="-10px"
>
<SolverNodeContent
problemTypeId={typeId}
problemIds={props.data.problemDtos.map((dto) => dto.id)}
solver={{
id: solverId,
name: solverName,
Expand Down
4 changes: 2 additions & 2 deletions src/components/solvers/Graph/SolverNode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { ProblemSolverInfo } from "../../../api/data-model/ProblemSolverInfo";
import { SolverNodeContent } from "./SolverNodeContent";

export interface SolverNodeData {
problemTypeId: string;
problemId: string[];
problemSolver: ProblemSolverInfo;
selectCallback: (problemSolver: ProblemSolverInfo) => void;
}
Expand Down Expand Up @@ -45,7 +45,7 @@ export function SolverNode(props: NodeProps<SolverNodeData>) {
<Handle type="target" position={Position.Top} />
<VStack gap="0px">
<SolverNodeContent
problemTypeId={props.data.problemTypeId}
problemIds={props.data.problemId}
solver={props.data.problemSolver}
button={{
label: "Select",
Expand Down
57 changes: 17 additions & 40 deletions src/components/solvers/Graph/SolverNodeContent.tsx
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
import {
Button,
HStack,
Popover,
PopoverArrow,
PopoverBody,
PopoverCloseButton,
PopoverContent,
PopoverFooter,
PopoverHeader,
PopoverTrigger,
Portal,
Text,
Tooltip,
VStack,
} from "@chakra-ui/react";
import { Button, HStack, Text, Tooltip, VStack } from "@chakra-ui/react";
import { ReactNode } from "react";
import { FaQuestionCircle } from "react-icons/fa";
import { FaGears } from "react-icons/fa6";
import { IoMdRefresh } from "react-icons/io";
import { ProblemSolverInfo } from "../../../api/data-model/ProblemSolverInfo";
import { useGraphUpdates } from "./ProblemGraphView";

export interface SolverNodeContentProps {
problemTypeId: string;
problemIds: string[];
solver: ProblemSolverInfo;
button: {
label: ReactNode;
Expand All @@ -29,6 +15,8 @@ export interface SolverNodeContentProps {
}

export const SolverNodeContent = (props: SolverNodeContentProps) => {
const { updateProblem } = useGraphUpdates();

return (
<VStack gap="0px">
<HStack align="start" maxW="10rem" justifyContent="space-between" gap="0">
Expand All @@ -41,28 +29,17 @@ export const SolverNodeContent = (props: SolverNodeContentProps) => {
{props.solver.name}
</Text>

<Popover>
<PopoverTrigger>
<div>
<FaQuestionCircle size="1rem" />
</div>
</PopoverTrigger>
<Portal>
<PopoverContent>
<PopoverArrow />
<PopoverCloseButton />
<PopoverHeader>
<Text fontWeight="semibold">{props.solver.name}</Text>
</PopoverHeader>
<PopoverBody>
<Text>Solves {props.problemTypeId}</Text>
</PopoverBody>
<PopoverFooter>
<Text fontSize="xs">{props.solver.id}</Text>
</PopoverFooter>
</PopoverContent>
</Portal>
</Popover>
{props.problemIds !== undefined && (
<IoMdRefresh
cursor="pointer"
size="2rem"
onClick={() => {
for (let problemId of props.problemIds) {
updateProblem(problemId);
}
}}
/>
)}
</HStack>

<div
Expand Down

0 comments on commit 0d1a5d6

Please sign in to comment.