import animate from './css-animation';
const noop = () => {};
const getTransitionProps = (transitionName, opt = {}) => {
  const { beforeEnter, enter, afterEnter, leave, afterLeave, appear = true, tag, nativeOn } = opt;
  const transitionProps = {
    props: {
      appear,
      css: false,
    },
    on: {
      beforeEnter: beforeEnter || noop,
      enter:
        enter ||
        ((el, done) => {
          animate(el, `${transitionName}-enter`, done);
        }),
      afterEnter: afterEnter || noop,
      leave:
        leave ||
        ((el, done) => {
          animate(el, `${transitionName}-leave`, done);
        }),
      afterLeave: afterLeave || noop,
    },
    nativeOn,
  };
  // transition-group
  if (tag) {
    transitionProps.tag = tag;
  }
  return transitionProps;
};

export default getTransitionProps;
