import React, {useContext} from "react" import classes from "./ModerateViewport.pcss" import {Button} from "spotlight/admin-common/components/Button" import {Dashicon} from "spotlight/common/components/Dashicon" import {TokenSelectionGrid} from "spotlight/admin-common/components/MediaSelectionGrid/TokenSelectionGrid" import {SidebarLayout} from "spotlight/admin-common/components/SidebarLayout/SidebarLayout" import {TokenThumbnail} from "spotlight/feed/components/TokenThumbnail" import {useDispatch, useSelector, useStore} from "react-redux" import {FeedEditorActions, FeedEditorState} from "spotlight/feed-editor/store" import {ModerationMode} from "spotlight/feed" import {arrayToggleValue} from "spotlight/utils/arrays/arrayToggleValue" import {useFeedEditorContext} from "spotlight/feed-editor/context" import {Token} from "spotlight/common/modules/tokens" import {Square} from "spotlight/common/components/Square/Square" export type Props = { onShowSidebar: () => void; }; const ModerationMediaGridCache: TokenSelectionGrid.CacheStrategy = { value: null, update: (newValue) => ModerationMediaGridCache.value = newValue, } export function ModerateViewport({onShowSidebar}: Props) { const dispatch = useDispatch() const isPro = useFeedEditorContext().config.isPro const isCollapsed = useContext(SidebarLayout.Context) const moderation = useSelector(state => state.editor.feedOptions.moderation) const mode = useSelector(state => state.editor.feedOptions.moderationMode) const store = useStore() function handleClick(token: Token) { let newModeration = arrayToggleValue(moderation, token.id) dispatch(FeedEditorActions.changeFeedOptions({moderation: newModeration})) } function getIsTileGrey(token: Token) { const isModerated = moderation.includes(token.id) const isBlacklist = mode === ModerationMode.BLACKLIST return isBlacklist === isModerated } return (
{isCollapsed && (
)} {props => }
) } function ModerationTile({token, isGrey}) { return (
) }