diff --git a/dashboard/src/states/Dashboard/pages/Info/components/Offline/components/OfflineRenewalDays/OfflineRenewalDays.jsx b/dashboard/src/states/Dashboard/pages/Info/components/Offline/components/OfflineRenewalDays/OfflineRenewalDays.jsx new file mode 100644 index 0000000..76b2173 --- /dev/null +++ b/dashboard/src/states/Dashboard/pages/Info/components/Offline/components/OfflineRenewalDays/OfflineRenewalDays.jsx @@ -0,0 +1,41 @@ +import {IconButton, Stack, TextField, Typography} from "@mui/material"; +import {ProjectContext} from "@/states/Dashboard/contexts/Project"; +import {useContext, useState} from "react"; +import {patchRequest} from "@/common/utils/RequestUtil.js"; +import {Save} from "@mui/icons-material"; + +export const OfflineRenewalDays = () => { + + const {currentProject, updateProjects} = useContext(ProjectContext); + + const [valueChanged, setValueChanged] = useState(false); + const [renewalDays, setRenewalDays] = useState(currentProject.offlineRenewalDays || 0); + + const saveChanges = async () => { + try { + await patchRequest(`/project/${currentProject.id}`, {offlineRenewalDays: renewalDays}); + await updateProjects(); + setValueChanged(false); + } catch (e) { + console.error(e.message); + } + } + + return ( + + + Offline renewal days + + The number of days an offline license can be used before it needs to be renewed. + + + { + setRenewalDays(parseInt(event.target.value)); + setValueChanged(true); + }} + InputProps={valueChanged ? {endAdornment: } : {}}/> + + ) +} \ No newline at end of file diff --git a/dashboard/src/states/Dashboard/pages/Info/components/Offline/components/OfflineRenewalDays/index.js b/dashboard/src/states/Dashboard/pages/Info/components/Offline/components/OfflineRenewalDays/index.js new file mode 100644 index 0000000..d649d4b --- /dev/null +++ b/dashboard/src/states/Dashboard/pages/Info/components/Offline/components/OfflineRenewalDays/index.js @@ -0,0 +1 @@ +export {OfflineRenewalDays as default} from "./OfflineRenewalDays.jsx"; \ No newline at end of file