func signIn(credential: Credential) {

    store.dispatch(SignInFormAction.request)

    api.signIn(with: credential) { [store] result in

        DispatchQueue.main.async {

            switch result {

            case .success(let user):

                store.dispatch(SignInFormAction.handleSuccess)

                store.dispatch(AuthenticationAction.signIn(user))

            case .error(let error):

                store.dispatch(SignInFormAction.handleError(error))

            }

        }

    }

}