import { TransformAnimateEvent, Animate } from '../../../types'

export default (type: number) => {
  return (e: TransformAnimateEvent) => {
    let inO: number, outO: number, inV: Animate, outV: Animate
    switch (type) {
      case 0:
        inO = 1
        outO = 0
        inV = e.in
        outV = e.out
        break
      case 1:
      default:
        inO = 0
        outO = 1
        inV = outV = e.in
    }
    inV.duration(0).ease('ease-out-expo').to(0, 0, 0).opacity(inO).end(function () {
      outV.duration(300).opacity(outO).end(function () {
        e.callback(false)
      })
    })
  }
}
