Update labels on cards when setting from library

This commit is contained in:
Jackson Harper
2023-06-21 14:17:26 +08:00
parent 2293cc0256
commit 29b809558b
3 changed files with 11 additions and 8 deletions

View File

@ -1,4 +1,4 @@
import { useEffect } from 'react'
import { useCallback, useEffect } from 'react'
import { useSetPageLabels } from '../../../lib/hooks/useSetPageLabels'
import { LabelsProvider } from './SetLabelsControl'
import { SetLabelsModal } from './SetLabelsModal'
@ -22,12 +22,19 @@ export function SetPageLabelsModalPresenter(
})
}, [props.article, dispatchLabels])
const onOpenChange = useCallback(() => {
if (props.article) {
props.article.labels = labels.labels
}
props.onOpenChange(true)
}, [props, labels])
return (
<SetLabelsModal
provider={props.article}
selectedLabels={labels.labels}
dispatchLabels={dispatchLabels}
onOpenChange={props.onOpenChange}
onOpenChange={onOpenChange}
/>
)
}

View File

@ -22,17 +22,12 @@ import { PrimaryDropdown } from '../PrimaryDropdown'
import { OmnivoreSmallLogo } from '../../elements/images/OmnivoreNameLogo'
import { HeaderSpacer, HEADER_HEIGHT } from './HeaderSpacer'
import { LIBRARY_LEFT_MENU_WIDTH } from '../../templates/homeFeed/LibraryFilterMenu'
import {
ScrollOffsetChangeset,
useScrollWatcher,
} from '../../../lib/hooks/useScrollWatcher'
import { CardCheckbox } from '../../patterns/LibraryCards/LibraryCardStyles'
import { Dropdown, DropdownOption } from '../../elements/DropdownElements'
import { BulkAction } from '../../../lib/networking/mutations/bulkActionMutation'
import { ConfirmationModal } from '../../patterns/ConfirmationModal'
import { AddBulkLabelsModal } from '../article/AddBulkLabelsModal'
import { Label } from '../../../lib/networking/fragments/labelFragment'
import { LabelsDispatcher } from '../../../lib/hooks/useSetPageLabels'
export type MultiSelectMode = 'off' | 'none' | 'some' | 'visible' | 'search'

View File

@ -1,7 +1,8 @@
import { useReducer } from 'react'
import { useEffect, useReducer } from 'react'
import { setLabelsMutation } from '../networking/mutations/setLabelsMutation'
import { Label } from '../networking/fragments/labelFragment'
import { showErrorToast } from '../toastHelpers'
import { LabelsProvider } from '../../components/templates/article/SetLabelsControl'
export type LabelAction = 'RESET' | 'TEMP' | 'SAVE'
export type LabelsDispatcher = (action: {