Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Organise code that operates on units and their utility functions. #285

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/main/webapp/ui/src/Inventory/Sample/Fields/Expiry.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ import React, { type Node } from "react";
import { observer } from "mobx-react-lite";
import Alert from "@mui/material/Alert";
import { type HasEditableFields } from "../../../stores/definitions/Editable";
import { todaysDate, truncateIsoTimestamp } from "../../../util/conversions";
import {
todaysDate,
truncateIsoTimestamp,
} from "../../../stores/definitions/Units";
import DateField from "../../../components/Inputs/DateField";
import BatchFormField from "../../components/Inputs/BatchFormField";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,22 @@ import React, {
} from "react";
import { observer } from "mobx-react-lite";
import Box from "@mui/material/Box";
import { type Temperature } from "../../../stores/definitions/Sample";
import Grid from "@mui/material/Grid";
import Select from "@mui/material/Select";
import MenuItem from "@mui/material/MenuItem";
import Button from "@mui/material/Button";
import { withStyles } from "Styles";
import {
type Temperature,
CELSIUS,
KELVIN,
FAHRENHEIT,
ABSOLUTE_ZERO,
LIQUID_NITROGEN,
type TemperatureScale,
temperatureFromTo,
validateTemperature,
} from "../../../stores/definitions/Units";
import { temperatureFromTo, validateTemperature } from "../../../util/conversions";
import Grid from "@mui/material/Grid";
import Select from "@mui/material/Select";
import MenuItem from "@mui/material/MenuItem";
import Button from "@mui/material/Button";
import { withStyles } from "Styles";
import NumberField from "../../../components/Inputs/NumberField";
import InputAdornment from "@mui/material/InputAdornment";
import { FormLabel } from "@mui/material";
Expand Down Expand Up @@ -173,7 +174,8 @@ function SpecifiedStorageTemperature({
const newMaxTemp = { numericValue: newMax, unitId };
setTemperatures({ storageTempMin: newMinTemp, storageTempMax: newMaxTemp });
onErrorStateChange(
!validateTemperature(newMinTemp).isError || !validateTemperature(newMaxTemp).isError
!validateTemperature(newMinTemp).isError ||
!validateTemperature(newMaxTemp).isError
);
};

Expand All @@ -187,7 +189,8 @@ function SpecifiedStorageTemperature({
const newMaxTemp = { numericValue: newMax, unitId };
setTemperatures({ storageTempMin: newMinTemp, storageTempMax: newMaxTemp });
onErrorStateChange(
!validateTemperature(newMinTemp).isError || !validateTemperature(newMaxTemp).isError
!validateTemperature(newMinTemp).isError ||
!validateTemperature(newMaxTemp).isError
);
};

Expand Down Expand Up @@ -239,7 +242,8 @@ function SpecifiedStorageTemperature({
variant="outlined"
size="small"
error={
validateTemperature({ numericValue: min, unitId }).isError
validateTemperature({ numericValue: min, unitId })
.isError
}
fullWidth
InputProps={{
Expand All @@ -260,7 +264,8 @@ function SpecifiedStorageTemperature({
variant="outlined"
size="small"
error={
validateTemperature({ numericValue: max, unitId }).isError
validateTemperature({ numericValue: max, unitId })
.isError
}
fullWidth
InputProps={{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@

import React, { type Node } from "react";
import { observer } from "mobx-react-lite";
import { type Temperature } from "../../../stores/definitions/Sample";
import { type Temperature, CELSIUS } from "../../../stores/definitions/Units";
import { type HasEditableFields } from "../../../stores/definitions/Editable";
import Button from "@mui/material/Button";
import SpecifiedStorageTemperature from "./SpecifiedStorageTemperature";
import { CELSIUS } from "../../../stores/definitions/Units";
import BatchFormField from "../../components/Inputs/BatchFormField";

function StorageTemperature<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import FormField from "../../../components/Inputs/FormField";
import AttachmentField from "../../../../components/Inputs/AttachmentField";
import ChoiceField from "../../../../components/Inputs/ChoiceField";
import DateField from "../../../../components/Inputs/DateField";
import { truncateIsoTimestamp } from "../../../../util/conversions";
import { truncateIsoTimestamp } from "../../../../stores/definitions/Units";
import NumberField from "../../../../components/Inputs/NumberField";
import RadioField from "../../../../components/Inputs/RadioField";
import ReferenceField from "../../../../components/Inputs/ReferenceField";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@
import React from "react";
import { render, cleanup } from "@testing-library/react";
import "@testing-library/jest-dom";
import { CELSIUS } from "../../../../../stores/definitions/Units";
import {
CELSIUS,
type Temperature,
} from "../../../../../stores/definitions/Units";
import StorageTemperature from "../../StorageTemperature";
import Button from "@mui/material/Button";
import { ThemeProvider } from "@mui/material/styles";
import materialTheme from "../../../../../theme";
import { type Temperature } from "../../../../../stores/definitions/Sample";

jest.mock("@mui/material/Button", () => jest.fn(() => <></>));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import {
CELSIUS,
KELVIN,
FAHRENHEIT,
type Temperature,
} from "../../../../../stores/definitions/Units";
import { ThemeProvider } from "@mui/material/styles";
import materialTheme from "../../../../../theme";

import StorageTemperature from "../../StorageTemperature";
import { type Temperature } from "../../../../../stores/definitions/Sample";

beforeEach(() => {
jest.clearAllMocks();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@ import React from "react";
import { render, cleanup, screen } from "@testing-library/react";
import "@testing-library/jest-dom";
import StorageTemperature from "../../StorageTemperature";
import { CELSIUS } from "../../../../../stores/definitions/Units";
import {
CELSIUS,
type Temperature,
} from "../../../../../stores/definitions/Units";
import { ThemeProvider } from "@mui/material/styles";
import materialTheme from "../../../../../theme";
import { type Temperature } from "../../../../../stores/definitions/Sample";
import userEvent from "@testing-library/user-event";

const mockFieldOwner = (mockedParts: {|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import InputWrapper from "../../../components/Inputs/InputWrapper";
import Button from "@mui/material/Button";
import AddIcon from "@mui/icons-material/Add";
import { makeStyles } from "tss-react/mui";
import { truncateIsoTimestamp } from "../../../util/conversions";
import { truncateIsoTimestamp } from "../../../stores/definitions/Units";

const useStyles = makeStyles()((theme) => ({
buttonWrapper: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import DateField from "../../../components/Inputs/DateField";
import { library } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faFilter, faSearch, faBars } from "@fortawesome/free-solid-svg-icons";
import { truncateIsoTimestamp } from "../../../util/conversions";
import { truncateIsoTimestamp } from "../../../stores/definitions/Units";
library.add(faFilter, faSearch, faBars);

import UserSelect from "../AdvancedSearch/UserSelect/UserSelect";
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/ui/src/components/AppBar/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ import CircularProgress from "@mui/material/CircularProgress";
import MaintenanceIcon from "@mui/icons-material/Construction";
import Popover from "@mui/material/Popover";
import IconButton from "@mui/material/IconButton";
import { getRelativeTime } from "../../util/conversions";
import { getRelativeTime } from "../../stores/definitions/Units";
import Result from "../../util/result";
import useSessionStorage from "../../util/useSessionStorage";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ import TableRow from "@mui/material/TableRow";
import NoValue from "../NoValue";
import VisuallyHiddenHeading from "../VisuallyHiddenHeading";
import IdentifierModel from "../../stores/models/IdentifierModel";
import { truncateIsoTimestamp } from "../../util/conversions";
import { truncateIsoTimestamp } from "../../stores/definitions/Units";

const useStyles = makeStyles()((theme) => ({
styledDescriptionList: {
Expand Down
6 changes: 1 addition & 5 deletions src/main/webapp/ui/src/stores/definitions/Sample.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,11 @@ import { type InventoryRecord } from "./InventoryRecord";
import { type Template } from "./Template";
import { type Id } from "./BaseRecord";
import { type Field } from "./Field";
import { type Temperature } from "./Units";

export type Alias = {| alias: string, plural: string |};
export type SampleSource = "LAB_CREATED" | "VENDOR_SUPPLIED" | "OTHER";

export type Temperature = {|
numericValue: number,
unitId: number,
|};

export interface Sample extends InventoryRecord {
template: ?Template;
storageTempMin: ?Temperature;
Expand Down
Loading