addPost = async options => {
  let {
      dispatch,
      desc,
      targetFile,
      filter,
      location,
      type,
      group,
      group_name,
      tags,
    } = options,
    user = Number(uData('session')),
    username = uData('username'),
    form = new FormData(),
    file = await imageCompressor(targetFile),
    action = new Action('.p_post')

  action.start()
  wait()

  form.append('desc', desc)
  form.append('image', file)
  form.append('filter', filter)
  form.append('location', location)
  form.append('type', type)
  form.append('group', group)

  let {
    data: { success, mssg, post_id, firstname, surname, filename },
  } = await post('/api/post-it', form)
  await post('/api/tag-post', { tags, post_id })

  tags.forEach(async t => {
    await insta_notify({
      to: t.user,
      type: 'tag',
      post_id: post_id,
    })
  })

  if (success) {
    let newPost = {
      key: post_id,
      comments_count: 0,
      likes_count: 0,
      shares_count: 0,
      tags_count: tags.length,
      user,
      username,
      firstname,
      surname,
      description: desc,
      filter,
      imgSrc: filename,
      location,
      post_time: `${new Date().getTime()}`,
      post_id,
      group_id: 0,
      group_name: '',
      type: 'user',
    }

    type == 'user'
      ? dispatch(
          addUserPost({
            ...newPost,
            when: 'feed',
          })
        )
      : dispatch(
          addGroupPost({
            ...newPost,
            group_id: group,
            group_name,
            type: 'group',
            when: 'groupPosts',
          })
        )
  }

  action.end()
  Notify({ value: mssg })
}
Add post
@param {Object} options Options for creating a new post
@param {Function} options.dispatch
@param {String} options.desc
@param {String} options.targetFile
@param {String} options.filter
@param {String} options.location
@param {String} options.type
@param {Number} options.group
@param {String} options.group_name
@param {Object[]} options.tags
@param {Number} options.tags.user
@param {String} options.tags.username