// resources\assets\ts\DataPage\MoveTaskDateDialog.tsx
import Button from '@mui/material/Button';
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogTitle from '@mui/material/DialogTitle';
import TextField from '@mui/material/TextField';
import { RootState } from './rootReducer';
import { Trans } from '@lingui/macro';
import { requestMoveAGB, requestMoveTask } from './actionSlice';
import { setClose, setDate } from './moveTaskDateSlice';
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import React from 'react';

export default function MoveTaskDateDialog() {
  const d = useDispatch();
  const { open, newDate, agbID } = useSelector(
    (s: RootState) => s.moveTaskDateDialog,
    shallowEqual
  );

  function onChange(e) {
    d(setDate(e.target.value));
  }

  // function handleMoveTask() {
  //   if (agbID === null) {
  //     d(requestMoveTask());
  //   } else {
  //     d(requestMoveAGB());
  //   }
  // }

  function handleMoveTask() {
  if (agbID === null) {
    d(requestMoveTask());
    
    // ✅ ADD: Emit event for ContactsPage (for tasks)
    // We need the ergID - let's get it from Redux state
    const state = (d as any).getState() as RootState;
    const ergId = state.moveTaskDateDialog.ergID; // You might need to add this field
    
    if (ergId) {
      window.dispatchEvent(new CustomEvent('contactMoveTask', { 
        detail: { ergId, newDate } 
      }));
    }
  } else {
    d(requestMoveAGB());
  }
  
  d(setClose());
}

  function handleClose() {
    d(setClose());
  }

  return (
    <Dialog open={open} onClose={handleClose}>
      <DialogTitle>
        <Trans>Move task to a new date</Trans>
      </DialogTitle>
      <DialogContent>
        <TextField
          fullWidth
          required={true}
          label={<Trans>Date</Trans>}
          type='date'
          onChange={onChange}
          value={newDate}
          InputLabelProps={{ shrink: true }}
        />
      </DialogContent>
      <DialogActions>
        <Button onClick={handleMoveTask}>
          <Trans>Move</Trans>
        </Button>
        <Button onClick={handleClose} autoFocus>
          <Trans>Close</Trans>
        </Button>
      </DialogActions>
    </Dialog>
  );
}
