import { setIn } from 'lodash-redux-immutability';

import { CreateFormState, CreateModes } from '@/app/(root)/create/v2/types';
import { Clip } from '@/state/clipStore';
import { getClipTitle } from '@/utils/clip';

const reusePrompt = (clip: Clip) => (state: CreateFormState) => {
  state = setIn(state, ['global', 'mode'], CreateModes.CUSTOM);
  state[CreateModes.CUSTOM] = {
    ...state[CreateModes.CUSTOM],
    lyrics: clip.metadata?.prompt || '',
    styles: clip.metadata?.tags || '',
    excludeStyles: clip.metadata?.negative_tags || '',
    title: getClipTitle(clip),
  };

  state = setIn(state, ['global', 'activeLyrics'], clip.metadata?.prompt || '');
  state = setIn(state, ['global', 'activeLyricsMode'], 'custom');
  state = setIn(state, ['global', 'activeLyricsModeTab'], 'custom');

  return state;
};

export default reusePrompt;
