diff --git a/src/components/collaboration-mode-picker.tsx b/src/components/collaboration-mode-picker.tsx index c66653bd..fe8d2122 100644 --- a/src/components/collaboration-mode-picker.tsx +++ b/src/components/collaboration-mode-picker.tsx @@ -1,20 +1,18 @@ import { Button, Popover, Icon } from '@wordpress/components'; +import { + store as coreDataStore, + type CoreDataActions, + type CoreDataSelectors, +} from '@wordpress/core-data'; import { useSelect, useDispatch } from '@wordpress/data'; import { useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; -import { pencil, seen } from '@wordpress/icons'; - -import { - store as collaborationModeStore, - type CollaborationModeStoreSelectors, - type CollaborationModeStoreActions, - CollaborationMode, -} from '@/store/collaboration-mode-store'; +import { pencil, seen, chevronDown } from '@wordpress/icons'; import '@/components/collaboration-mode-picker.scss'; interface ModeOption { - value: CollaborationMode; + value: 'edit' | 'view'; label: string; description: string; icon: JSX.Element; @@ -22,13 +20,13 @@ interface ModeOption { const MODES: ModeOption[] = [ { - value: CollaborationMode.EDIT, + value: 'edit', label: __( 'Editing', 'vip-real-time-collaboration' ), description: __( 'Edit document directly', 'vip-real-time-collaboration' ), icon: pencil, }, { - value: CollaborationMode.VIEW, + value: 'view', label: __( 'Viewing', 'vip-real-time-collaboration' ), description: __( 'Focus on content', 'vip-real-time-collaboration' ), icon: seen, @@ -43,17 +41,16 @@ export function CollaborationModePicker() { const [ isPopoverVisible, setIsPopoverVisible ] = useState( false ); const [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >( null ); - // Default value is Edit mode - const selectedMode = useSelect< CollaborationModeStoreSelectors, CollaborationMode >( select => - select( collaborationModeStore ).getMode() + const selectedCollaborationEditorMode = useSelect< CoreDataSelectors, 'edit' | 'view' >( select => + select( coreDataStore ).getCollaboratorMode() ); - const { setMode } = useDispatch< CollaborationModeStoreActions >( collaborationModeStore ); + const { setCollaboratorMode } = useDispatch< CoreDataActions >( coreDataStore ); - const currentMode = MODES.find( mode => mode.value === selectedMode ); + const currentMode = MODES.find( mode => mode.value === selectedCollaborationEditorMode ); - const handleModeSelect = ( mode: CollaborationMode ) => { - setMode( mode ); + const handleModeSelect = ( mode: 'edit' | 'view' ) => { + setCollaboratorMode( mode ); setIsPopoverVisible( false ); }; @@ -68,7 +65,9 @@ export function CollaborationModePicker() { ref={ setPopoverAnchor } text={ currentMode?.label } icon={ currentMode?.icon } - /> + > + + { isPopoverVisible && (
{ MODES.map( ( { value, label, description, icon } ) => { - const isSelected = value === selectedMode; + const isSelected = value === selectedCollaborationEditorMode; return (