Change Results panel

This commit is contained in:
Niklas Meinzer
2024-11-09 21:24:21 +01:00
parent 6696575a0e
commit ea33a0c95c

View File

@@ -14,7 +14,6 @@ import {
StatNumber, StatNumber,
StatGroup, StatGroup,
Select, Select,
Progress,
NumberInput, NumberInput,
NumberInputField, NumberInputField,
Slider, Slider,
@@ -22,7 +21,9 @@ import {
SliderMark, SliderMark,
SliderTrack, SliderTrack,
SliderThumb, SliderThumb,
Tooltip Tooltip,
Alert,
AlertIcon
} from '@chakra-ui/react'; } from '@chakra-ui/react';
import { flatData } from './Data'; import { flatData } from './Data';
@@ -297,21 +298,33 @@ export function SelfEvaluationCard({ rent, setRent }) {
export function ResultsCard({ rent, flat, room, numAdults, flatRent }) { export function ResultsCard({ rent, flat, room, numAdults, flatRent }) {
var body = <CardBody></CardBody> var body = <CardBody></CardBody>
if (flat && (room || flat.wgRoomList.length === 0) && flatRent) { if (rent && flat && (room || flat.wgRoomList.length === 0) && flatRent) {
var totalSize = flat.calcTotalPayedArea(room) var totalSize = flat.calcTotalPayedArea(room)
var relativeRent = (rent) / totalSize; var relativeRent = (rent) / totalSize;
var rangePosition = ((rent - flatRent.min) / (flatRent.maxCovering * - flatRent.min)) * 100; var status = "error", text = "Dieses Gebot läge unter der Mindestmiete und ist nicht zulässig";
if (rangePosition < 0) { rangePosition = 0; }
if (rangePosition > 100) { rangePosition = 100; } if (rent >= flatRent.min) {
var color = "red"; status = 'info';
if (rangePosition > 33) { color = "yellow"; } text = "Über der Mindestmiete. "
if (rangePosition > 66) { color = "green "; } }
if (rent >= flatRent.minCovering) {
status = 'success';
text = 'Über der Standardmiete WBS 🎉'
}
if (rent >= flatRent.maxCovering) {
status = 'success';
text = 'Über der Standardmiete freifinanziert! 🎉🎉🎉'
}
body = <CardBody> body = <CardBody>
<Stack> <Stack>
<Text fontWeight="bold">
Das ergäbe eine Miete von:
</Text>
<StatGroup> <StatGroup>
<Stat> <Stat>
<StatLabel>Miete</StatLabel> <StatLabel>Warmmiete</StatLabel>
<StatNumber>{rent} </StatNumber> <StatNumber>{rent} </StatNumber>
</Stat> </Stat>
@@ -320,22 +333,10 @@ export function ResultsCard({ rent, flat, room, numAdults, flatRent }) {
<StatNumber>{relativeRent.toFixed(2)} </StatNumber> <StatNumber>{relativeRent.toFixed(2)} </StatNumber>
</Stat> </Stat>
</StatGroup> </StatGroup>
<Text> <Alert status={status}>
Im Folgenden siehst du, wo deine Miete auf der Spanne zwischen WBS-Satz und <AlertIcon />
frei finanzierten Wohnungen ohne Soli-Ausgleich liegen würde. {text}
</Text> </Alert>
<Progress colorScheme={color} size='sm' value={rangePosition} />
<StatGroup>
<Stat>
<StatLabel>Mindestmiete</StatLabel>
<StatNumber>{flatRent.min.toFixed(2)} </StatNumber>
</Stat>
<Stat>
<StatLabel>Standardmiete freifinanziert</StatLabel>
<StatNumber>{flatRent.maxCovering.toFixed(2)} </StatNumber>
</Stat>
</StatGroup>
</Stack> </Stack>
</CardBody>; </CardBody>;
} }