import React, { useCallback, useEffect, useState } from 'react'; import { useTranslation } from '@/hooks/useI18n.tsx'; import { Organization, ResourceFlow } from '@/types.ts'; import Button from '@/components/ui/Button.tsx'; import Textarea from '@/components/ui/Textarea.tsx'; import Wizard from '@/components/wizard/Wizard.tsx'; interface ProposalModalContext { targetOrg: Organization; resource: ResourceFlow; resourceType: 'input' | 'output'; } interface CreateProposalModalProps { isOpen: boolean; onClose: () => void; context: ProposalModalContext | null; onSubmit: (message: string) => void; } const CreateProposalModal = ({ isOpen, onClose, context, onSubmit }: CreateProposalModalProps) => { const { t } = useTranslation(); const [message, setMessage] = useState(''); // Reset message when modal opens to clear any previous input useEffect(() => { if (isOpen) { setMessage(''); // eslint-disable-line } }, [isOpen]); const handleSubmit = useCallback( (e: React.FormEvent) => { e.preventDefault(); onSubmit(message); }, [message, onSubmit] ); if (!context) return null; const { targetOrg, resource, resourceType } = context; return (

{targetOrg.Name}

{t( resourceType === 'input' ? 'organizationPage.proposalModal.offeringToFulfill' : 'organizationPage.proposalModal.requestingToFulfill' )}

“{resource.Type}”