diff --git a/package.json b/package.json index 304e3a3e0..abd2901ba 100644 --- a/package.json +++ b/package.json @@ -32,16 +32,16 @@ "@dnd-kit/utilities": "^3.2.0", "@emotion/react": "^11.10.5", "@emotion/server": "^11.10.0", - "@mantine/carousel": "^5.9.2", - "@mantine/core": "^5.9.2", - "@mantine/dates": "^5.9.2", - "@mantine/dropzone": "^5.9.2", - "@mantine/form": "^5.9.2", - "@mantine/hooks": "^5.9.2", - "@mantine/modals": "^5.9.2", - "@mantine/next": "^5.9.2", - "@mantine/notifications": "^5.9.2", - "@mantine/prism": "^5.9.2", + "@mantine/carousel": "^5.9.3", + "@mantine/core": "^5.9.3", + "@mantine/dates": "^5.9.3", + "@mantine/dropzone": "^5.9.3", + "@mantine/form": "^5.9.3", + "@mantine/hooks": "^5.9.3", + "@mantine/modals": "^5.9.3", + "@mantine/next": "^5.9.3", + "@mantine/notifications": "^5.9.3", + "@mantine/prism": "^5.9.3", "@nivo/core": "^0.79.0", "@nivo/line": "^0.79.1", "@tabler/icons": "^1.106.0", diff --git a/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx b/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx index a486ac888..633a44af6 100644 --- a/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx +++ b/src/components/Dashboard/Modals/ChangePosition/ChangePositionModal.tsx @@ -1,6 +1,9 @@ -import { Grid, NumberInput } from '@mantine/core'; +import { Button, Flex, Grid, NumberInput } from '@mantine/core'; import { useForm } from '@mantine/form'; -import { ContextModalProps } from '@mantine/modals'; +import { closeModal, ContextModalProps } from '@mantine/modals'; +import { useConfigContext } from '../../../../config/provider'; +import { useConfigStore } from '../../../../config/store'; +import { ServiceType } from '../../../../types/service'; import { TileBaseType } from '../../../../types/tile'; export const ChangePositionModal = ({ @@ -8,24 +11,82 @@ export const ChangePositionModal = ({ id, innerProps, }: ContextModalProps<{ type: 'service' | 'type'; tile: TileBaseType }>) => { + const updateConfig = useConfigStore((x) => x.updateConfig); + const { name: configName } = useConfigContext(); + const form = useForm({ initialValues: { - area: innerProps.tile.area, - shape: innerProps.tile.shape, + tile: innerProps.tile, }, + validateInputOnChange: true, + validateInputOnBlur: true, }); + const onSubmit = () => { + if (!configName) { + return; + } + + const tileAsService = form.values.tile as ServiceType; + + updateConfig(configName, (previous) => ({ + ...previous, + services: [...previous.services.filter((x) => x.id === tileAsService.id), tileAsService], + })); + }; + return ( - <> +
); }; diff --git a/src/components/layout/header/Header.tsx b/src/components/layout/header/Header.tsx index e59476743..80f5d7ea7 100644 --- a/src/components/layout/header/Header.tsx +++ b/src/components/layout/header/Header.tsx @@ -1,4 +1,7 @@ -import { Box, createStyles, Group, Header as MantineHeader } from '@mantine/core'; +import { ActionIcon, Box, createStyles, Group, Header as MantineHeader } from '@mantine/core'; +import { openContextModal } from '@mantine/modals'; +import { IconCode } from '@tabler/icons'; +import { useConfigContext } from '../../../config/provider'; import { Logo } from '../Logo'; import { useCardStyles } from '../useCardStyles'; import { AddElementAction } from './Actions/AddElementAction/AddElementAction'; @@ -12,6 +15,8 @@ export function Header(props: any) { const { classes } = useStyles(); const { classes: cardClasses } = useCardStyles(); + const { config } = useConfigContext(); + return (