import { ModalContent, ModalOverlay, ModalRoot, } from '../../elements/ModalPrimitives' import { HStack, VStack } from '../../elements/LayoutPrimitives' import { Button } from '../../elements/Button' import { StyledText } from '../../elements/StyledText' import { CrossIcon } from '../../elements/images/CrossIcon' import { theme } from '../../tokens/stitches.config' import { useGetLabelsQuery } from '../../../lib/networking/queries/useGetLabelsQuery' import { ChangeEvent, useCallback, useState } from 'react' import { setLabelsMutation } from '../../../lib/networking/mutations/setLabelsMutation' import { ArticleAttributes } from '../../../lib/networking/queries/useGetArticleQuery' import { Label } from '../../../lib/networking/fragments/labelFragment' import { LabelChip } from '../../elements/LabelChip' type EditLabelsModalProps = { labels: Label[] article: ArticleAttributes onOpenChange: (open: boolean) => void setLabels: (labels: Label[]) => void } export function EditLabelsModal(props: EditLabelsModalProps): JSX.Element { const [selectedLabels, setSelectedLabels] = useState(props.labels) const { labels } = useGetLabelsQuery() const saveAndExit = useCallback(async () => { const result = await setLabelsMutation(props.article.id, selectedLabels.map((l) => l.id)) console.log('result of setting labels', result) props.onOpenChange(false) props.setLabels(selectedLabels) }, [props, selectedLabels]) const handleChange = useCallback( (event: ChangeEvent) => { // const label = event.target.value // if (event.target.checked) { // setSelectedLabels([...selectedLabels, label]) // } else { // setSelectedLabels(selectedLabels.filter((l) => l !== label)) // } }, [selectedLabels] ) return ( { event.preventDefault() }} css={{ overflow: 'auto', p: '0' }} > Edit Labels {labels && labels.map((label) => ( { // if (selectedLabels.includes(label.id)) { // setSelectedLabels( // selectedLabels.filter((id) => id !== label.id) // ) // } else { // setSelectedLabels([...selectedLabels, label.id]) // } }} > ))} ) }