Skip to content

Commit

Permalink
Minor refactor in evaluation criteria components
Browse files Browse the repository at this point in the history
  • Loading branch information
Mahesh Krishna Kumar committed Jan 9, 2020
1 parent ae7ce7e commit 615d032
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 7 deletions.
Expand Up @@ -93,17 +93,21 @@ let gradeBarPanel = (grading, gradeLabels, gradeSelectCB, passGrade) =>
</div>;

[@react.component]
let make = (~grading, ~gradeLabels, ~gradeSelectCB=?, ~passGrade) =>
let make = (~grading, ~gradeSelectCB=?, ~criterion) => {
let gradeLabels =
criterion |> EvaluationCriterion.gradesAndLabels |> Array.to_list;
let passGrade = criterion |> EvaluationCriterion.passGrade;
<div className="flex-column" role="toolbar">
{gradeBarHeader(grading, gradeLabels)}
{gradeBarPanel(grading, gradeLabels, gradeSelectCB, passGrade)}
</div>;
};

module Jsx2 = {
let make = (~grading, ~gradeLabels, ~gradeSelectCB=?, ~passGrade, children) =>
let make = (~grading, ~gradeSelectCB=?, criterion, children) =>
ReasonReactCompat.wrapReactForReasonReact(
make,
makeProps(~grading, ~gradeLabels, ~gradeSelectCB?, ~passGrade, ()),
makeProps(~grading, ~gradeSelectCB?, ~criterion, ()),
children,
);
};
Expand Up @@ -59,7 +59,7 @@ let decodeJS = details =>
~passGrade=ec##passGrade,
~gradesAndLabels={
ec##gradeLabels
|> Js.Array.map(gradeAndLabel =>
|> Array.map(gradeAndLabel =>
GradeLabel.makeFromJs(gradeAndLabel)
);
},
Expand Down
Expand Up @@ -98,7 +98,7 @@ let updateEvaluationCriterion =
|> Js.Array.filter(gradesAndLabel =>
gradesAndLabel |> GradeLabel.grade <= state.maxGrade
)
|> Array.map(gl => gl |> GradeLabel.asJsType);
|> Array.map(gl => gl |> GradeLabel.asJsObject);

let updateCriterionQuery =
UpdateEvaluationCriterionQuery.make(
Expand Down Expand Up @@ -134,7 +134,7 @@ let createEvaluationCriterion =
|> Js.Array.filter(gradesAndLabel =>
gradesAndLabel |> GradeLabel.grade <= state.maxGrade
)
|> Array.map(gl => gl |> GradeLabel.asJsType);
|> Array.map(gl => gl |> GradeLabel.asJsObject);

let createCriterionQuery =
CreateEvaluationCriterionQuery.make(
Expand Down Expand Up @@ -196,6 +196,7 @@ let labels = (state, setState) =>
id={"grade-label-for-" ++ (grade |> string_of_int)}
className=" appearance-none border rounded w-full p-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline"
type_="text"
maxLength=40
value={gradeAndLabel |> GradeLabel.label}
onChange={event =>
updateGradeLabel(
Expand Down
2 changes: 1 addition & 1 deletion app/javascript/shared/types/GradeLabel.re
Expand Up @@ -23,7 +23,7 @@ let empty = grade => {grade, label: ""};

let update = (label, t) => {...t, label};

let asJsType = t => {"grade": t.grade, "label": t.label};
let asJsObject = t => {"grade": t.grade, "label": t.label};

let valid = t => t.label |> Js.String.trim |> Js.String.length >= 1;

Expand Down

0 comments on commit 615d032

Please sign in to comment.