import { useState } from 'react'; import { FaShare } from 'react-icons/fa'; import { createPortal } from 'react-dom'; import styles from './PromptItemShare.module.css'; import { useAuthToken } from '../../../auth/Hooks/use-auth-token'; import { useOrgUsers } from '../../../auth/Hooks/get-all-users'; import { authorizedPost } from '../../../api'; interface PromptItemShareProps { promptId: string; promptTitle: string; } export const PromptItemShare: React.FC = ({ promptId, promptTitle }) => { const [showModal, setShowModal] = useState(false); const [selectedUsers, setSelectedUsers] = useState>(new Set()); const { getToken } = useAuthToken(); const { users, loading, error } = useOrgUsers(); const handleShareClick = () => { setShowModal(true); }; const handleUserToggle = (userId: string) => { setSelectedUsers(prev => { const newSet = new Set(prev); if (newSet.has(userId)) { newSet.delete(userId); } else { newSet.add(userId); } return newSet; }); }; const handleShare = async () => { try { console.log(Array.from(selectedUsers)); await authorizedPost(`/api/user/prompts/${promptId}/share`, getToken, { user_ids: Array.from(selectedUsers) }); setShowModal(false); setSelectedUsers(new Set()); } catch (error) { console.error('Error sharing prompt:', error); } }; const handleCancel = () => { setShowModal(false); setSelectedUsers(new Set()); }; return ( <> {showModal && createPortal(

Share Prompt

Share "{promptTitle}" with:

{loading &&
Loading users...
} {error &&
{error}
}
{users.map(user => ( ))}
, document.body )} ); }; export default PromptItemShare;