import { Pencil, Trash2 } from 'lucide-react'; import React from 'react'; import { useDispatch } from '@wordpress/data'; import { useState } from '@wordpress/element'; import { decodeEntities } from '@wordpress/html-entities'; import { __ } from '@wordpress/i18n'; import { Post } from '../../../utils/admin'; import Edit from './Edit'; import Upsert from './Upsert'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { SectionTitle } from '@/components/ui/typography'; import './Manage.scss'; type Props = { listId: string, item: Post | null | 'new', onClose(): void, onSuccess( post: Post ): void, }; /** * Create a Broadcast modal component. * * @param {Object} props Props. * * @return {React.element} Modal component. */ export default function ManageModal( props: Props ) { const { listId, item, onClose, onSuccess, } = props; const [ isEditing, setIsEditing ] = useState( false ); const { deletePost } = useDispatch( 'accelerate' ); const onDelete = () => { /* eslint-disable no-alert */ if ( ! window.confirm( __( 'Are you sure you want to delete this broadcast?', 'altis' ) ) ) { return; } if ( item !== 'new' && item?.id ) { deletePost( item.id ); onClose(); } }; return ( ! open && onClose() }> { item === 'new' ? __( 'Create Broadcast', 'altis' ) : __( 'Edit Broadcast', 'altis' ) }
{ item === 'new' || isEditing ? ( { setIsEditing( false ); item === 'new' && onClose(); } } onSuccess={ post => { setIsEditing( false ); onSuccess( post ); } } /> ) : (
{ decodeEntities( item?.title || '' ) }
) } { item !== 'new' && item?.id ? ( ) : null }
); }