The main server, and probably only repository in this org.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.7 KiB

import React, {useState} from "react";
import {Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader} from "reactstrap";
import useBridges from "../../Hooks/bridge";
import Loading from "../Loading";
function BridgeModal({onCancel, bridge = null}) {
const {addBridge, editBridge} = useBridges();
const edit = bridge !== null;
const [name, setName] = useState(edit ? bridge.name : "");
const [driver, setDriver] = useState(edit ? bridge.driver : "");
const [addr, setAddr] = useState(edit ? bridge.addr : "");
const [waiting, setWaiting] = useState(false);
function onConfirm() {
if (edit) {
editBridge(bridge.id, name);
} else {
setWaiting(true);
addBridge(name, driver, addr, (result) => {
if (!result) {
alert("Noe gikk galt");
}
setWaiting(false);
onCancel();
});
}
}
return (
<Modal isOpen={true}>
<ModalHeader>{edit ? "Bruegenskaper" : "Ny bru"}</ModalHeader>
<ModalBody>
{waiting ? (
<Loading/>
) : (
<Form>
<FormGroup row>
<Label sm={3} for="text-name">
Navn:
</Label>
<Col sm={9}>
<Input type="text"
id="text-name"
name="name"
value={name}
onChange={e => setName(e.target.value)}
/>
</Col>
</FormGroup>
<FormGroup row>
<Label sm={3} for="text-driver">
Driver:
</Label>
<Col sm={9}>
<Input type="text"
id="text-driver"
name="driver"
value={driver}
onChange={e => setDriver(e.target.value)}
disabled={edit}
/>
</Col>
</FormGroup>
<FormGroup row>
<Label sm={3} for="text-name">
Adresse:
</Label>
<Col sm={9}>
<Input type="text"
id="text-addr"
name="addr"
value={addr}
onChange={e => setAddr(e.target.value)}
disabled={edit}
/>
</Col>
</FormGroup>
</Form>
)}
</ModalBody>
<ModalFooter>
<Button color="primary" disabled={waiting} onClick={onConfirm}>Bekreft</Button>
{" "}
<Button color="secondary" disabled={waiting} onClick={onCancel}>Avbryt</Button>
</ModalFooter>
</Modal>
);
}
export default BridgeModal;