import { useContext, useEffect } from 'react';

import { AudioUploadStatus } from '@/state/createV2Store';

import { AudioUpload } from '../createV2/AudioSectionNew';
import { AudioActions } from '../v2/types';
import UploadStateContext from './UploadStateContext';
import { MainContent, Wrapper } from './components';

type StudioFinalizeProps = {
  finalizeMessage?: string;
};

const StudioFinalize = ({
  finalizeMessage = 'Uploading to your library...',
}: StudioFinalizeProps) => {
  const { attemptClose, setInitializationCondition, setUploadStatus } =
    useContext(UploadStateContext);

  useEffect(() => {
    // Upload tracking will be handled by UploadStateContext when upload starts

    // For studio uploads, automatically set to save mode and close
    setInitializationCondition(AudioActions.SAVE);

    // Close immediately for studio uploads
    setTimeout(() => {
      attemptClose();
    }, 100);
  }, [setInitializationCondition, attemptClose]);

  return (
    <Wrapper>
      <MainContent>
        <div className='flex flex-row items-center gap-2 text-foreground-primary'>
          <AudioUpload
            onCancel={() => {
              setUploadStatus(AudioUploadStatus.CANCELLED);
              attemptClose();
            }}
          />
        </div>
        <div className='flex w-full flex-row justify-center py-8 text-foreground-primary'>
          <span className='text-xl'>{finalizeMessage}</span>
        </div>
      </MainContent>
    </Wrapper>
  );
};

export default StudioFinalize;
