diff --git a/db_app/package-lock.json b/db_app/package-lock.json index 9063272..28bc013 100644 --- a/db_app/package-lock.json +++ b/db_app/package-lock.json @@ -3761,6 +3761,26 @@ "deep-equal": "^2.0.5" } }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, "babel-jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", @@ -5364,6 +5384,11 @@ } } }, + "eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==" + }, "eslint-config-react-app": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", @@ -5515,6 +5540,14 @@ } } }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-plugin-react": { "version": "7.32.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", @@ -5817,6 +5850,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + }, "fast-glob": { "version": "3.2.12", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", @@ -8728,6 +8766,18 @@ "tmpl": "1.0.5" } }, + "material-ui-numeric-input": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/material-ui-numeric-input/-/material-ui-numeric-input-3.2.0.tgz", + "integrity": "sha512-y9C2AdupPI5bXsSFDDrh+S20D/loiyG89NmhOUfZHPScfGznLbh6P1MfcZJonFgjtphdVUlipWNA2HH/IQGF8Q==", + "requires": { + "babel-eslint": "^10.1.0", + "eslint": "^8.9.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.28.0" + } + }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -10004,6 +10054,14 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "requires": { + "fast-diff": "^1.1.2" + } + }, "pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -10194,8 +10252,7 @@ "react-client-session": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/react-client-session/-/react-client-session-0.0.8.tgz", - "integrity": "sha512-wHCTD4lEE8mzl6kxL8viL4q5kGx2TJJNaWdvzmx3KeiMgP+Yv5/Bx476jCpPD0pKc5VvdVuhkH4EM20XqtT/sQ==", - "requires": {} + "integrity": "sha512-wHCTD4lEE8mzl6kxL8viL4q5kGx2TJJNaWdvzmx3KeiMgP+Yv5/Bx476jCpPD0pKc5VvdVuhkH4EM20XqtT/sQ==" }, "react-dev-utils": { "version": "12.0.1", diff --git a/db_app/package.json b/db_app/package.json index 6a3de9e..df64558 100644 --- a/db_app/package.json +++ b/db_app/package.json @@ -9,6 +9,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "material-ui-numeric-input": "^3.2.0", "react": "^18.2.0", "react-client-session": "^0.0.8", "react-dom": "^18.2.0", diff --git a/db_app/src/components/Plan.js b/db_app/src/components/Plan.js index fffc917..79bbf74 100644 --- a/db_app/src/components/Plan.js +++ b/db_app/src/components/Plan.js @@ -2,32 +2,15 @@ import React,{useState} from 'react'; import {Routes, Route, useNavigate} from 'react-router-dom'; import './Login.css'; import Button from "@mui/material/Button"; -import Card from "@mui/material/Card"; import TextField from "@mui/material/TextField"; -import FormControlLabel from "@mui/material/FormControlLabel"; -import Checkbox from "@mui/material/Checkbox"; -import Link from "@mui/material/Link"; -import Grid from "@mui/material/Grid"; -import Box from "@mui/material/Box"; -import Typography from "@mui/material/Typography"; -import Container from "@mui/material/Container"; import AppBar from '@mui/material/AppBar'; import Toolbar from '@mui/material/Toolbar'; -import IconButton from '@mui/material/IconButton'; -import Avatar from '@mui/material/Avatar'; -import Tooltip from '@mui/material/Tooltip'; -import Menu from '@mui/material/Menu'; -import MenuIcon from '@mui/material/Menu' -import MenuItem from '@mui/material/MenuItem'; import {red, green, lightBlue, lightGreen} from '@mui/material/colors'; import { ThemeProvider, createTheme } from '@mui/material/styles'; import { ReactSession } from 'react-client-session'; -import { Axios } from 'axios'; +import Axios from 'axios'; import Chip from '@mui/material/Chip'; import Stack from '@mui/material/Stack'; -import Select, { SelectChangeEvent } from '@mui/material/Select'; -import InputLabel from '@mui/material/InputLabel'; -import FormControl from '@mui/material/FormControl'; import { Table, TableBody, TableCell, TableContainer,TableHead, TableRow, Paper} from '@mui/material'; @@ -88,17 +71,17 @@ const net_id = ReactSession.get("net_id"); //to set nutritional goal for the week const [goalInput, setGoalInput] = useState({ - total_cal: "", - total_fat: "", - total_sat_fat: "", - total_trans_fat: "", - total_carbs: "", - total_fiber: "", - total_sugar: "", - total_protein: "", - total_sodium: "", - total_potassium: "", - total_cholesterol: "", + total_cal: 0, + total_fat: 0, + total_sat_fat: 0, + total_trans_fat: 0, + total_carbs: 0, + total_fiber: 0, + total_sugar: 0, + total_protein: 0, + total_sodium: 0, + total_potassium: 0, + total_cholesterol: 0, } ); @@ -112,19 +95,23 @@ const changeGoalHandler = evt =>{ const submitGoalHandler = evt => { evt.preventDefault(); console.log(goalInput) - Axios.post("http://3.219.93.142:8000/api/", + console.log(net_id) + console.log(weekStart()) + Axios.post("http://3.219.93.142:8000/api/goal", { - total_cal: total_cal[0], - total_fat: total_fat[0], - total_sat_fat: total_sat_fat[0], - total_trans_fat: total_trans_fat[0], - total_carbs: total_carbs[0], - total_fiber: total_fiber[0], - total_sugar: total_sugar[0], - total_protein: total_protein[0], - total_sodium: total_sodium[0], - total_potassium: total_potassium[0], - total_cholesterol: total_cholesterol[0] + net_id: net_id, + week_date: weekStart(), + total_cal: Number(total_cal[0]), + total_fat: Number(total_fat[0]), + total_sat_fat: Number(total_sat_fat[0]), + total_trans_fat: Number(total_trans_fat[0]), + total_carbs: Number(total_carbs[0]), + total_fiber: Number(total_fiber[0]), + total_sugar: Number(total_sugar[0]), + total_protein: Number(total_protein[0]), + total_sodium: Number(total_sodium[0]), + total_potassium: Number(total_potassium[0]), + total_cholesterol: Number(total_cholesterol[0]) }).then((response) => { console.log(response); console.log(response.status); @@ -150,7 +137,7 @@ const submitGoalHandler = evt => { ); const {item_name, calories, fat_g, sat_fat_g, trans_fat_g, carbs_g, fiber_g,sugar_g, protein_g, - sodium_mg, potassium_mg, cholesterol_mg, } = offCampusInput + sodium_mg, potassium_mg, cholesterol_mg} = offCampusInput const changeOffCampusHandler = evt => { setOffCampusInput({ ...offCampusInput, [evt.target.name]: [evt.target.value] }) @@ -216,6 +203,7 @@ const submitGoalHandler = evt => { label="Calories" name="total_cal" size="small" + type="number" value={total_cal} onChange={changeGoalHandler} /> @@ -225,6 +213,7 @@ const submitGoalHandler = evt => { label="Fat (g)" size="small" name="total_fat" + type="number" value={total_fat} onChange={changeGoalHandler} /> @@ -234,6 +223,7 @@ const submitGoalHandler = evt => { label="Saturated Fat (g)" size="small" name="total_sat_fat" + type="number" value={total_sat_fat} onChange={changeGoalHandler} /> @@ -243,6 +233,7 @@ const submitGoalHandler = evt => { label="Trans Fat (g)" size="small" name="total_trans_fat" + type="number" value={total_trans_fat} onChange={changeGoalHandler} /> @@ -252,6 +243,7 @@ const submitGoalHandler = evt => { label="Carbs (g)" size="small" name="total_carbs" + type="number" value={total_carbs} onChange={changeGoalHandler} /> @@ -262,6 +254,7 @@ const submitGoalHandler = evt => { label="Fiber (g)" size="small" name="total_fiber" + type="number" value={total_fiber} onChange={changeGoalHandler} /> @@ -271,6 +264,7 @@ const submitGoalHandler = evt => { label="Sugar (g)" size="small" name="total_sugar" + type="number" value={total_sugar} onChange={changeGoalHandler} /> @@ -280,6 +274,7 @@ const submitGoalHandler = evt => { label="Protein (g)" size="small" name="total_protein" + type="number" value={total_protein} onChange={changeGoalHandler} /> @@ -289,6 +284,7 @@ const submitGoalHandler = evt => { label="Sodium (mg)" size="small" name="total_sodium" + type="number" value={total_sodium} onChange={changeGoalHandler} /> @@ -298,6 +294,7 @@ const submitGoalHandler = evt => { label="Potassium (mg)" size="small" name="total_potassium" + type="number" value={total_potassium} onChange={changeGoalHandler} /> @@ -307,6 +304,7 @@ const submitGoalHandler = evt => { label="Cholesterol (mg)" size="small" name="total_cholesterol" + type="number" value={total_cholesterol} onChange={changeGoalHandler} /> @@ -446,21 +444,6 @@ const submitGoalHandler = evt => { On-Campus