product-addon: remove useState using
This commit is contained in:
parent
502dd919f5
commit
d0b4641300
@ -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 }}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user