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