import { TargetProtocol } from '../../../core/app';
import { ALWAYSAI_OS_PLATFORM } from '../../../environment';
import {
  Destination,
  destinationPromptComponent
} from './destination-prompt-component';

export async function targetProtocolPromptComponent(props: {
  prevTargetProtocol?: TargetProtocol;
}) {
  const { prevTargetProtocol } = props;
  const destination = await destinationPromptComponent({
    prevDestination:
      prevTargetProtocol === TargetProtocol['ssh+docker:']
        ? Destination.REMOTE_DEVICE
        : Destination.YOUR_LOCAL_COMPUTER
  });
  let answer: TargetProtocol;
  switch (ALWAYSAI_OS_PLATFORM) {
    case 'linux': {
      answer =
        destination === Destination.REMOTE_DEVICE
          ? TargetProtocol['ssh+docker:']
          : TargetProtocol['docker:'];
      break;
    }

    case 'win32':
    case 'darwin': {
      answer =
        destination === Destination.REMOTE_DEVICE
          ? TargetProtocol['ssh+docker:']
          : TargetProtocol['native:'];
      break;
    }

    default: {
      answer = TargetProtocol['ssh+docker:'];
    }
  }

  return answer;
}
