/* eslint-disable -- temporary disable for development/testing purposes */

import * as React from 'react';
import IconButton from '@mui/material/IconButton';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
import MoreVertIcon from '@mui/icons-material/MoreVert';
import { useRouter } from 'next/navigation';

interface RowActionsProps {
  rowId: string;
  category: string | null; // ✅ allow null
  onBroadcastClick: (userId: string) => void; // Prop to handle opening the Broadcast modal
  onAssignClick: (id: string, category: string | null, type: 'provider' | 'manager') => void; // Prop to handle assigning provider/manager
  onShowBanner?: (message: string, severity: 'success' | 'error') => void; // ✅ Add this line
  onTagUpdated?: () => void; // Prop to trigger parent data refresh

}

export function RowActions({ rowId,category, onBroadcastClick, onAssignClick, onShowBanner , onTagUpdated}: RowActionsProps) {
  const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
  const open = Boolean(anchorEl);
  const router = useRouter();

  const handleClick = (event: React.MouseEvent<HTMLElement>): void => {
    setAnchorEl(event.currentTarget);
  };
  
  const handleClose = (): void => {
    setAnchorEl(null);
  };
  
  const handleDetails = (id: string): void => {
    router.push(`/dashboard/customers/${id}`);
  };
  
  const handleDelete = async (): Promise<void> => {
    handleClose();
    try {
      const res = await fetch(`/admin/api/customers?id=${rowId}`, {
        method: 'DELETE',
      });
      const data: { error?: string } = await res.json();
  
      if (res.ok) {
        onShowBanner?.('Customer deleted successfully', 'success');
        onTagUpdated?.();
      } else {
        onShowBanner?.(data.error ?? 'Failed to delete', 'error');
      }
    } catch (error) {
      // eslint-disable-next-line no-console
      console.error('Delete error:', error);
      onShowBanner?.('Something went wrong', 'error');
    }
  };
  return (
    <>
      <IconButton onClick={handleClick}>
        <MoreVertIcon />
      </IconButton>
      <Menu anchorEl={anchorEl} open={open} onClose={handleClose}>
     
      <MenuItem onClick={handleDelete}>Delete</MenuItem>

<MenuItem onClick={() => { handleClose(); handleDetails(rowId); }}>
  View Details
</MenuItem>

<MenuItem onClick={() => { handleClose(); onAssignClick(rowId, category, 'provider'); }}>
  Assign Provider
</MenuItem>

<MenuItem onClick={() => { handleClose(); onAssignClick(rowId, category, 'manager'); }}>
  Assign Manager
</MenuItem>

<MenuItem onClick={() => {
  onBroadcastClick(rowId);
  handleClose();
}}>
  Broadcast
</MenuItem>

<MenuItem onClick={() => { router.push(`/dashboard/customers/${rowId}/medical-chart`); }}>
  Medical Chart
</MenuItem>

<MenuItem onClick={() => { router.push(`/dashboard/customers/${rowId}/tags`); }}>
  Manage Tags
</MenuItem>
      </Menu>
    </>
  );
}
