product-addon: remove useState using

This commit is contained in:
vchikalkin 2024-01-19 14:46:05 +03:00
parent 502dd919f5
commit d0b4641300

View File

@ -3,7 +3,6 @@ import titles from '../config/elements-titles';
import { useStore } from '@/stores/hooks';
import { observer } from 'mobx-react-lite';
import { pick } from 'radash';
import { useState } from 'react';
import styled from 'styled-components';
import { Tag } from 'ui/elements';
@ -18,24 +17,17 @@ const tagsData = pick(titles, ['cbxPartialVAT', 'cbxFloatingRate']);
const { CheckableTag } = Tag;
export const ProductAddon = observer(() => {
const [selectedTags, setSelectedTags] = useState<string[]>([]);
const { $calculation } = useStore();
function handleChange(elementName: keyof typeof tagsData, checked: boolean) {
if (checked) {
setSelectedTags([...selectedTags, elementName]);
$calculation.element(elementName).setValue(true);
} else {
setSelectedTags(selectedTags.filter((x) => x !== elementName));
$calculation.element(elementName).setValue(false);
}
$calculation.element(elementName).setValue(checked);
}
return (
<Container>
{(Object.keys(tagsData) as Array<keyof typeof tagsData>).map((elementName) => (
<CheckableTag
checked={selectedTags.includes(elementName)}
checked={$calculation.element(elementName).getValue()}
onChange={(checked) => handleChange(elementName, checked)}
key={elementName}
style={{ marginInlineEnd: 0 }}