62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
import { formatters, id, title, titles } from './config';
|
|
import { Container, Head } from '@/Components/Layout/Element';
|
|
import { useStore } from '@/stores/hooks';
|
|
import { min } from '@/styles/mq';
|
|
import { toJS } from 'mobx';
|
|
import { observer } from 'mobx-react-lite';
|
|
import { omit } from 'radash';
|
|
import styled from 'styled-components';
|
|
import { Text } from 'ui/elements';
|
|
import { Box } from 'ui/grid';
|
|
|
|
const Grid = styled(Box)`
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
|
|
${min('tablet')} {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
`;
|
|
|
|
const Wrapper = styled.div`
|
|
margin-bottom: 18px;
|
|
`;
|
|
|
|
const Results = observer(() => {
|
|
const { $results, $process } = useStore();
|
|
|
|
const resultsValues = toJS($results.values);
|
|
// eslint-disable-next-line no-negated-condition
|
|
const values = !$process.has('Unlimited')
|
|
? omit(
|
|
resultsValues,
|
|
Object.keys(resultsValues).filter((x) => x.includes('_'))
|
|
)
|
|
: resultsValues;
|
|
|
|
return (
|
|
<Grid>
|
|
{Object.keys(values).map((valueName) => {
|
|
const formatter = formatters[valueName];
|
|
const storeValue = values[valueName];
|
|
const value = formatter(storeValue);
|
|
|
|
return (
|
|
<Wrapper key={valueName}>
|
|
<Container key={valueName}>
|
|
<Head title={titles[valueName]} />
|
|
<Text>{value}</Text>
|
|
</Container>
|
|
</Wrapper>
|
|
);
|
|
})}
|
|
</Grid>
|
|
);
|
|
});
|
|
|
|
export default {
|
|
Component: Results,
|
|
id,
|
|
title,
|
|
};
|